初学者如何用 Python 写第一个爬虫?

?? 欢迎来到我的博客! 非常高兴能在这里与您相遇。在这里,您不仅能获得有趣的技术分享,还能感受到轻松愉快的氛围。无论您是编程新手,还是资深开发者,都能在这里找到属于您的知识宝藏,学习和成长。

?? 博客内容包括:

  • Java核心技术与微服务:涵盖Java基础、JVM、并发编程、Redis、Kafka、Spring等,帮助您全面掌握企业级开发技术。
  • 大数据技术:涵盖Hadoop(HDFS)、Hive、Spark、Flink、Kafka、Redis、ECharts、Zookeeper等相关技术。
  • 开发工具:分享常用开发工具(IDEA、Git、Mac、Alfred、Typora等)的使用技巧,提升开发效率。
  • 数据库与优化:总结MySQL及其他常用数据库技术,解决实际工作中的数据库问题。
  • Python与大数据:专注于Python编程语言的深度学习,数据分析工具(如Pandas、NumPy)和大数据处理技术,帮助您掌握数据分析、数据挖掘、机器学习等技术。
  • 数据结构与算法:总结数据结构与算法的核心知识,提升编程思维,帮助您应对大厂面试挑战。

?? 我的目标:持续学习与总结,分享技术心得与解决方案,和您一起探索技术的无限可能!在这里,我希望能与您共同进步,互相激励,成为更好的自己。

?? 欢迎订阅本专栏,与我一起在这个知识的海洋中不断学习、分享和成长!???


??版权声明:本博客所有内容均为原创,遵循CC 4.0 BY-SA协议,转载请注明出处。

目录

一、爬虫的基本概念

1. 爬虫的定义

2. 爬虫的主要工作流程

3. 常用 Python 工具

二、环境准备

1. 安装 Python

2. 安装必要库

三、写第一个简单的爬虫

1. 完整代码示例

2. 代码逐步解析

1)发送 HTTP 请求

2)检查请求状态

3)解析 HTML 数据

4)提取网页内容

5)打印结果

四、改进爬虫功能

1. 添加请求头

2. 控制爬取频率

3. 保存数据

五、应对复杂网页

1. 动态加载网页

2. 爬取图片或文件

六、爬虫的注意事项

1. 遵守法律和道德

2. 处理异常

3. 避免过于频繁的请求


网页爬虫是一种通过程序自动抓取网页数据的技术。对于初学者来说,使用 Python 写一个简单的爬虫是一个很好的入门项目。Python 提供了许多强大的工具和库,如 requestsBeautifulSoup,可以帮助快速实现网页数据的爬取。

在本文中,我们将从爬虫的基本概念开始,逐步实现一个可以抓取网页内容的简单爬虫,并探讨如何改进爬虫以应对复杂场景。我们将从以下几个方面展开:


一、爬虫的基本概念
1. 爬虫的定义

爬虫(Web Crawler)是一种自动化脚本或程序,它会模拟用户访问网页的行为,从而提取网页中的特定内容。

2. 爬虫的主要工作流程

一个典型的爬虫任务通常包括以下步骤:

  • 发送请求:通过 HTTP 协议访问目标网页,获取其 HTML 内容。

  • 解析数据:对获取到的 HTML 进行解析,提取我们需要的数据。

  • 存储数据:将提取到的数据保存到文件或数据库中,便于后续处理。

3. 常用 Python 工具
  • **requests**:发送 HTTP 请求,获取网页内容。

  • **BeautifulSoup**:解析 HTML 或 XML 数据,提取特定内容。

  • **re**(正则表达式):对复杂文本模式进行匹配和提取。

  • **pandas**:对数据进行清洗和分析。


二、环境准备
1. 安装 Python

确保你的计算机上已经安装了 Python(推荐使用 3.7 及以上版本)。如果尚未安装,可以从 Python 官方网站 下载并安装。

2. 安装必要库

打开命令行或终端,运行以下命令安装我们需要的 Python 库:

pip install requests beautifulsoup4
  • **requests**:用于发送 HTTP 请求。

  • **beautifulsoup4**:用于解析 HTML 数据。


三、写第一个简单的爬虫

我们来实现一个简单的爬虫,它将抓取某个网页的标题和正文内容。

1. 完整代码示例

以下代码实现了一个基本的爬虫:

import requests
from bs4 import BeautifulSoup

def simple_crawler(url):
    try:
        # 1. 发送请求
        response = requests.get(url)
        response.raise_for_status()  # 检查请求是否成功

        # 2. 解析网页内容
        soup = BeautifulSoup(response.text, 'html.parser')

        # 3. 提取标题和段落内容
        title = soup.find('title').text  # 获取网页标题
        paragraphs = soup.find_all('p')  # 获取所有段落内容

        print(f"网页标题: {title}
")
        print("网页内容:")
        for p in paragraphs:
            print(p.text)

    except requests.exceptions.RequestException as e:
        print(f"请求失败: {e}")

# 示例网址
url = "https://example.com"  # 替换为你想爬取的网页地址
simple_crawler(url)
2. 代码逐步解析
1)发送 HTTP 请求
response = requests.get(url)
  • 使用 requests.get() 方法向目标网址发送 GET 请求。

  • 返回的 response 对象包含网页的所有内容,包括 HTML 源代码。

2)检查请求状态
response.raise_for_status()
  • 通过 raise_for_status() 检查请求是否成功。如果返回的 HTTP 状态码表示错误(如 404 或 500),会抛出异常。
3)解析 HTML 数据
soup = BeautifulSoup(response.text, 'html.parser')
  • BeautifulSoup 用于解析 HTML 内容,并将其转化为 Python 对象,方便后续操作。

  • 第二个参数 'html.parser' 指定使用 Python 内置的 HTML 解析器。

4)提取网页内容
title = soup.find('title').text
paragraphs = soup.find_all('p')
  • find('title') 方法返回 </code> 标签的内容。</p> </li> <li> <p><code>find_all('p')</code> 方法返回所有段落标签 <code><p></code>,并以列表形式存储。</p> </li> </ul> <h6>5)打印结果</h6> <pre><code>for p in paragraphs: print(p.text) </code></pre> <ul> <li>遍历提取到的段落内容,并打印每个段落的文本。</li> </ul> <hr> <h5>四、改进爬虫功能</h5> <h6>1. 添加请求头</h6> <p>一些网站会检测爬虫程序并阻止访问。可以通过添加请求头来模拟浏览器访问。</p> <pre><code>headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" } response = requests.get(url, headers=headers) </code></pre> <h6>2. 控制爬取频率</h6> <p>为了避免对目标网站造成过高的负载,可以在每次请求后添加延时。</p> <pre><code>import time def delay_request(url): response = requests.get(url) time.sleep(2) # 等待 2 秒 return response </code></pre> <h6>3. 保存数据</h6> <p>将爬取的数据保存为文件或数据库。</p> <p><strong>保存到文件:</strong></p> <pre><code>with open("output.txt", "w", encoding="utf-8") as f: f.write(f"标题: {title} ") for p in paragraphs: f.write(p.text + " ") </code></pre> <p><strong>保存到 CSV 文件:</strong></p> <pre><code>import csv with open("output.csv", "w", newline="", encoding="utf-8") as csvfile: writer = csv.writer(csvfile) writer.writerow(["段落内容"]) for p in paragraphs: writer.writerow([p.text]) </code></pre> <hr> <h5>五、应对复杂网页</h5> <h6>1. 动态加载网页</h6> <p>对于 JavaScript 渲染的网页,<code>requests</code> 无法获取完整内容,可以使用 <code>selenium</code> 或 <code>playwright</code>。</p> <p><strong>示例(使用 selenium):</strong></p> <pre><code>from selenium import webdriver url = "https://example.com" # 配置 WebDriver driver = webdriver.Chrome() driver.get(url) # 获取动态加载的内容 html = driver.page_source print(html) # 关闭浏览器 driver.quit() </code></pre> <h6>2. 爬取图片或文件</h6> <pre><code>import os # 下载图片 img_url = "https://example.com/image.jpg" response = requests.get(img_url) # 保存图片 with open("image.jpg", "wb") as f: f.write(response.content) </code></pre> <hr> <h5>六、爬虫的注意事项</h5> <h6>1. 遵守法律和道德</h6> <ul> <li> <p><strong>避免违反法律</strong>:确保爬取行为符合目标网站的使用条款。</p> </li> <li> <p><strong>尊重 robots.txt 文件</strong>:通过 <code>robots.txt</code> 查看目标网站的爬取限制。</p> </li> </ul> <h6>2. 处理异常</h6> <p>对于网络请求失败、数据缺失等情况,添加异常处理逻辑:</p> <pre><code>try: response = requests.get(url) response.raise_for_status() except requests.exceptions.RequestException as e: print(f"请求失败: {e}") </code></pre> <h6>3. 避免过于频繁的请求</h6> <p>可以设置延时或使用代理 IP:</p> <pre><code>proxies = { "http": "http://123.45.67.89:8080", "https": "http://123.45.67.89:8080" } response = requests.get(url, proxies=proxies) </code></pre> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1896843633945014272"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(面试,学习路线,阿里巴巴,python,爬虫,开发语言)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1938916359798845440.htm" title="【python】判断值是否为NaN" target="_blank">【python】判断值是否为NaN</a> <span class="text-muted">MoFe1</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>importmathdefis_nan(value):returnisinstance(value,float)andmath.isnan(value)#测试print(is_nan(float('nan')))#输出:Trueprint(is_nan(None))#输出:Falseprint(is_nan('abc'))#输出:False</div> </li> <li><a href="/article/1938915855823859712.htm" title="print(3 or 5)的结果是什么?为什么?" target="_blank">print(3 or 5)的结果是什么?为什么?</a> <span class="text-muted">Lauren_Lu</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>print(3or5)的结果是:3原因:在Python中,or是一个逻辑运算符,但当它作用于非布尔类型(比如整数)时,它的行为是:返回第一个为真的值;如果第一个值为假,则返回第二个值。具体分析:3是一个非零整数,在布尔上下文中被视为True所以3or5就是:如果3是True,就返回3;否则返回5由于3是True,所以返回的是3。类似例子:print(0or5)#输出5,因为0被视为Falsepri</div> </li> <li><a href="/article/1938914847097942016.htm" title="深度学习实战:基于嵌入模型的AI应用开发" target="_blank">深度学习实战:基于嵌入模型的AI应用开发</a> <span class="text-muted">AIGC应用创新大全</span> <a class="tag" taget="_blank" href="/search/AI%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E4%B8%8E%E5%A4%A7%E6%95%B0%E6%8D%AE%E5%BA%94%E7%94%A8%E5%BC%80%E5%8F%91/1.htm">AI人工智能与大数据应用开发</a><a class="tag" taget="_blank" href="/search/MCP%26amp%3BAgent/1.htm">MCP&Agent</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E7%AE%97%E5%8A%9B%E7%BD%91%E7%BB%9C/1.htm">云算力网络</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/ai/1.htm">ai</a> <div>深度学习实战:基于嵌入模型的AI应用开发关键词:嵌入模型(EmbeddingModel)、深度学习、向量空间、语义表示、AI应用开发、相似性搜索、迁移学习摘要:本文将带你从0到1掌握基于嵌入模型的AI应用开发全流程。我们会用“翻译机”“数字身份证”等生活比喻拆解嵌入模型的核心原理,结合Python代码实战(BERT/CLIP模型)演示如何将文本、图像转化为可计算的语义向量,并通过“智能客服问答”“</div> </li> <li><a href="/article/1938913207326404608.htm" title="[python系列] 创建虚拟环境 venv" target="_blank">[python系列] 创建虚拟环境 venv</a> <span class="text-muted">en-route</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/virtualenv/1.htm">virtualenv</a> <div>虚拟环境定义Python中的虚拟环境是一个隔离的运行环境,旨在为每个Python项目提供独立的执行空间,支持在不同的项目中分别管理依赖关系,而不会影响到其他项目或系统的原始Python安装。可以将虚拟环境视为每个Python项目的“独立容器”,每个容器具备以下特点:拥有独立的Python解释器拥有各自独立的包管理和安装的软件包与其他虚拟环境相互隔离允许同一包存在不同版本使用虚拟环境的重要性体现在以</div> </li> <li><a href="/article/1938908666526756864.htm" title="Python代理池的构建与应用:实现高效爬虫与防封禁策略" target="_blank">Python代理池的构建与应用:实现高效爬虫与防封禁策略</a> <span class="text-muted">程序员威哥</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在进行大规模网络数据抓取时,IP封禁是最常见的反爬虫手段之一。为了应对这一挑战,代理池成为了一个重要工具。通过构建代理池,爬虫程序可以随机切换代理IP,避免同一IP被频繁访问而导致封禁,确保数据抓取任务的稳定性和持续性。本文将详细介绍如何使用Python构建一个高效的代理池,并结合实际应用场景,讲解如何使用代理池提升爬虫的抓取能力和防封禁策略。一、代理池的工作原理代理池的基本工作原理是,爬虫请求时</div> </li> <li><a href="/article/1938908667256565760.htm" title="Python爬虫实战:用Tushare和Baostock爬取股票历史数据及K线图与技术指标计算" target="_blank">Python爬虫实战:用Tushare和Baostock爬取股票历史数据及K线图与技术指标计算</a> <span class="text-muted"></span> <div>在金融数据分析和量化交易中,股票历史数据的获取是进行技术分析、回测和策略研究的第一步。传统上,投资者需要依赖付费数据服务,然而如今,借助Python强大的爬虫工具和开源数据接口,我们能够轻松地爬取免费的历史股票数据,并结合K线图与技术指标来进行深入分析。Tushare和Baostock是两个非常流行的开源金融数据接口。Tushare提供了丰富的国内外金融数据,特别是A股市场的历史数据和实时数据,而</div> </li> <li><a href="/article/1938903499521716224.htm" title="程序员面试中的故障排查:展现问题解决能力的黄金法则" target="_blank">程序员面试中的故障排查:展现问题解决能力的黄金法则</a> <span class="text-muted"></span> <div>程序员面试中的故障排查:展现问题解决能力的黄金法则关键词:故障排查、面试技巧、问题解决能力、结构化思维、技术沟通、根因分析、面试场景模拟摘要:在程序员面试中,故障排查类问题是考察候选人“实战能力”的核心环节——它不仅检验技术知识的深度,更能暴露逻辑思维、沟通表达和抗压能力的真实水平。本文将通过“侦探破案”式的类比,结合真实面试场景,拆解故障排查的黄金法则,帮助你在面试中从“解题者”升级为“问题解决</div> </li> <li><a href="/article/1938892776229892096.htm" title="Python_计算两个省市之间的直线距离_2506" target="_blank">Python_计算两个省市之间的直线距离_2506</a> <span class="text-muted">夏天里的肥宅水</span> <a class="tag" taget="_blank" href="/search/PYTHON/1.htm">PYTHON</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>更新代码上一版链接importpandasaspdimporttimeimportpickleimportosimportsysfromgeopy.geocodersimportNominatimfromgeopy.distanceimportgeodesicfromtqdmimporttqdm#ConfigurationINPUT_FILE=r"距离.xlsx"#输入文件路径OUTPUT_FIL</div> </li> <li><a href="/article/1938890760782934016.htm" title="python中的*args 和 **kwargs" target="_blank">python中的*args 和 **kwargs</a> <span class="text-muted">Hi_kenyon</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>简单来说,它们允许一个函数接收不定数量的参数。这在我们预先不知道会传递多少个参数给函数时非常有用。*args(任意数量的位置参数)*args用于在一个函数中接收任意数量的位置参数(positionalarguments)。当你在函数定义中使用*args时,Python会将所有传入的多余的位置参数收集到一个元组(tuple)中。这个名字args只是一个约定俗成的惯例(arguments的缩写),你也</div> </li> <li><a href="/article/1938887106604625920.htm" title="用 Python 开发文字冒险游戏:从零开始的教程" target="_blank">用 Python 开发文字冒险游戏:从零开始的教程</a> <span class="text-muted">晓天天天向上</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/microsoft/1.htm">microsoft</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>文字冒险游戏(Text-basedAdventureGame)是一种经典的游戏类型,玩家通过输入文字指令与游戏世界互动。这种游戏不依赖复杂的图形界面,非常适合初学者学习编程逻辑和用户交互。在本篇博客中,我们将用Python开发一个简单的文字冒险游戏,体验游戏开发的乐趣。1.游戏设计思路游戏背景玩家醒来发现自己身处一个神秘的地下城,需要探索房间、收集物品、战胜敌人并找到出口。核心机制房间导航:玩家可</div> </li> <li><a href="/article/1938886223133208576.htm" title="从零开始理解零样本学习:AI人工智能必学技术" target="_blank">从零开始理解零样本学习:AI人工智能必学技术</a> <span class="text-muted">AI天才研究院</span> <a class="tag" taget="_blank" href="/search/Agentic/1.htm">Agentic</a><a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/%E5%AE%9E%E6%88%98/1.htm">实战</a><a class="tag" taget="_blank" href="/search/AI%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E4%B8%8E%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">AI人工智能与大数据</a><a class="tag" taget="_blank" href="/search/AI%E5%A4%A7%E6%A8%A1%E5%9E%8B%E4%BC%81%E4%B8%9A%E7%BA%A7%E5%BA%94%E7%94%A8%E5%BC%80%E5%8F%91%E5%AE%9E%E6%88%98/1.htm">AI大模型企业级应用开发实战</a><a class="tag" taget="_blank" href="/search/ai/1.htm">ai</a> <div>从零开始理解零样本学习:AI人工智能必学技术关键词:零样本学习、人工智能、机器学习、知识迁移、语义嵌入摘要:本文旨在全面深入地介绍零样本学习这一在人工智能领域具有重要意义的技术。首先阐述零样本学习的背景和基本概念,通过详细的解释和直观的示意图让读者建立起对零样本学习的初步认识。接着深入剖析其核心算法原理,结合Python代码进行详细说明,同时引入相关数学模型和公式并举例阐释。通过项目实战部分,带领</div> </li> <li><a href="/article/1938885086799785984.htm" title="2025 VUE常见面试题" target="_blank">2025 VUE常见面试题</a> <span class="text-muted">hmildj</span> <a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>前言总结一些VUE面试的基础知识,共同学习1.什么是Vue?答案:Vue.js(通常简称为Vue)是一个用于构建用户界面的‌渐进式JavaScript框架,Vue3是Vue.js框架的最新版本,它引入了许多改进和优化,包括性能提升、更好的类型支持、组合API等。2.MVVM模式是什么?Vue如何体现这一模式?‌答案:MVVM将视图(View)与数据(Model)通过ViewModel层解耦,Vue</div> </li> <li><a href="/article/1938881173027614720.htm" title="Python训练营打卡——DAY16(2025.5.5)" target="_blank">Python训练营打卡——DAY16(2025.5.5)</a> <span class="text-muted">cosine2025</span> <a class="tag" taget="_blank" href="/search/Python%E8%AE%AD%E7%BB%83%E8%90%A5%E6%89%93%E5%8D%A1/1.htm">Python训练营打卡</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a> <div>目录一、NumPy数组基础笔记1.理解数组的维度(Dimensions)2.NumPy数组与深度学习Tensor的关系3.一维数组(1DArray)4.二维数组(2DArray)5.数组的创建5.1数组的简单创建5.2数组的随机化创建5.3数组的遍历5.4数组的运算6.数组的索引6.1一维数组索引6.2二维数组索引6.3三维数组索引二、SHAP值的深入理解三、总结1.NumPy数组基础总结2.SH</div> </li> <li><a href="/article/1938880165245415424.htm" title="Python的一点基础教程------文件读写" target="_blank">Python的一点基础教程------文件读写</a> <span class="text-muted">卡提西亚</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>最近在看大佬写的Python教程自学,但是感觉有点头痛,因为大佬讲了一些底层的结构和原理,但是又没那么详细,然后作为一个初学者自学的情况下,看的很费劲.看完就有感而发,想写一篇更基础的教程,教会大家怎么去用它,尽量少的去讲原理.但是当然,你也需要有一定的编程语言基础,了解基本的语法和函数等功能.正所谓师傅领进门,修行在个人,有时候我们学了一个东西,如果觉得很有趣,自然就会去了解关于它的更多信息,但</div> </li> <li><a href="/article/1938880038816509952.htm" title="1.2 Python 的特点与优势" target="_blank">1.2 Python 的特点与优势</a> <span class="text-muted">Utopia Reverie</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>1.语法简洁易读Python以简洁的语法著称,代码可读性强,减少了不必要的符号和冗余代码。例如,使用缩进来表示代码块,而非传统的大括号。这使得代码更易于理解和维护,尤其适合初学者。示例:python运行【#计算斐波那契数列的前10项n=10a,b=0,1for_inrange(n);print(a,end='')a,b=b,a+b#输出:0112358132134】2.开源与社区支持Python是</div> </li> <li><a href="/article/1938879281321013248.htm" title="动手学Python:从零开始构建一个“文字冒险游戏”" target="_blank">动手学Python:从零开始构建一个“文字冒险游戏”</a> <span class="text-muted">network爬虫</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>动手学Python:从零开始构建一个“文字冒险游戏”大家好,我是你的技术向导。今天,我们不聊高深的框架,也不谈复杂的算法,我们来做一点“复古”又极具趣味性的事情——用Python亲手打造一个属于自己的文字冒险游戏(TextAdventureGame)。你是否还记得那些在早期计算机上,通过一行行文字描述和简单指令来探索未知世界的日子?这种游戏的魅力在于它能激发我们最原始的想象力。而对于我们程序员来说</div> </li> <li><a href="/article/1938875501821095936.htm" title="鸿蒙仓颉开发语言实战教程:页面跳转和传参" target="_blank">鸿蒙仓颉开发语言实战教程:页面跳转和传参</a> <span class="text-muted">湖北穷逼首席代表</span> <a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA/1.htm">华为</a> <div>合集-仓颉教程(25)1.详解鸿蒙仓颉开发语言中的日志打印问题05-212.鸿蒙仓颉开发语言实战教程:实现商城应用首页05-223.鸿蒙仓颉开发语言实战教程:页面跳转和传参05-254.鸿蒙仓颉语言开发教程:页面和组件的生命周期05-285.鸿蒙仓颉语言开发实战教程:购物车页面06-036.鸿蒙仓颉语言开发实战教程:商城登录页06-047.鸿蒙仓颉语言开发实战教程:商城搜索页06-058.鸿蒙仓颉</div> </li> <li><a href="/article/1938875502303440896.htm" title="鸿蒙仓颉语言开发实战教程:购物车页面" target="_blank">鸿蒙仓颉语言开发实战教程:购物车页面</a> <span class="text-muted">王家那谁</span> <a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA/1.htm">华为</a> <div>合集-仓颉教程(25)1.详解鸿蒙仓颉开发语言中的日志打印问题05-212.鸿蒙仓颉开发语言实战教程:实现商城应用首页05-223.鸿蒙仓颉开发语言实战教程:页面跳转和传参05-254.鸿蒙仓颉语言开发教程:页面和组件的生命周期05-285.鸿蒙仓颉语言开发实战教程:购物车页面06-036.鸿蒙仓颉语言开发实战教程:商城登录页06-047.鸿蒙仓颉语言开发实战教程:商城搜索页06-058.鸿蒙仓颉</div> </li> <li><a href="/article/1938873736262381568.htm" title="python 脚本 遍历目录,并把目录下的非utf-8文件改成utf8" target="_blank">python 脚本 遍历目录,并把目录下的非utf-8文件改成utf8</a> <span class="text-muted">还债大湿兄</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>从网上下载的qt项目我本地编译里面经常包含中文,提示编译不过,实际上以前经常手动转,发觉还是用脚本不,毕竟这次下的有点大,我只改.h.cpp#pythonD:\python\filetoUtf.pyE:\EasyCanvas-master\EasyCanvas-masterimportosimportcodecsimportargparseimportsysdefconvert_to_utf8_b</div> </li> <li><a href="/article/1938871467496239104.htm" title="树莓派中 Python+opencv打开摄像头" target="_blank">树莓派中 Python+opencv打开摄像头</a> <span class="text-muted">68lizi</span> <a class="tag" taget="_blank" href="/search/%E5%85%89%E7%94%B5%E8%AE%BE%E8%AE%A1/1.htm">光电设计</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>树莓派中Python+opencv打开摄像头注意不要使用cap=cv2.VideoCapture(0,cv2.CAP_DSHOW),我在树莓派使用这个的时候会报错,在windows不会报错,具体原因不清楚cap=cv2.VideoCapture(0)#使用cap=cv2.VideoCapture(0,cv2.CAP_DSHOW)会报错whileTrue:status,img=cap.read()i</div> </li> <li><a href="/article/1938869447007727616.htm" title="python实现读取文件的指定某行内容" target="_blank">python实现读取文件的指定某行内容</a> <span class="text-muted">Fitz1318</span> <a class="tag" taget="_blank" href="/search/Python3%E5%AD%A6%E4%B9%A0/1.htm">Python3学习</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>python实现读取文件的指定某行内容最近有一个需求就是读取一个文件中的指定某行的内容,现将方法记录如下importlinecache#这里填写你自己的文件位置和行号text=linecache.getline("../TestFile/test_C1.json",2)print(text)</div> </li> <li><a href="/article/1938867679758708736.htm" title="HarmonyOS NEXT仓颉开发语言实战案例:简约音乐播放页" target="_blank">HarmonyOS NEXT仓颉开发语言实战案例:简约音乐播放页</a> <span class="text-muted">幽蓝计划</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a> <div>偶然间看到一个非常漂亮的音乐播放器设计图,忍不住想拿仓颉语言来练练手,当漂亮的设计图遇到优美的开发语言,简直是天作之合。看到这个页面,我们先做一个简单的分析。整个页面分为上中下三个部分,顶部为导航栏,底部是歌词工具栏,剩下的就是中间的歌曲信息和控制按钮部分。它们的部分方式是比较简单的纵向布局。页面大致结构代码如下:Column{//导航栏Stack{Text('NowPlaying').fontS</div> </li> <li><a href="/article/1938863395671437312.htm" title="[Python] 使用 dataclass 简化数据结构:定义、功能与实战" target="_blank">[Python] 使用 dataclass 简化数据结构:定义、功能与实战</a> <span class="text-muted">踏雪无痕老爷子</span> <a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在经典面向对象编程中,为了保存和操作数据往往需要定义多个类,手写__init__()、__repr__()、__eq__()等方法。Python3.7引入了@dataclass装饰器,它能自动生成这些常见方法,大幅减少样板代码。本文将介绍dataclass的定义与参数、比较与普通类的差别、实战示例,以及常见注意事项。一、什么是dataclass@dataclass是一种类装饰器,它通过类成员的类型</div> </li> <li><a href="/article/1938863396162170880.htm" title="[Python]-基础篇1- 从零开始的Python入门指南" target="_blank">[Python]-基础篇1- 从零开始的Python入门指南</a> <span class="text-muted">踏雪无痕老爷子</span> <a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>无论你是尚未接触编程的新手,还是想从其他语言转向Python的开发者,这篇文章都是你的入门课。一、Python是什么?Python是一种解释型、高级、通用型编程语言,以简洁明了、简单易用着称。它可以应用于网站开发、自动化脚本、数据分析、人工智能、系统操作等多种场景。二、如何安装Python步骤:访问Python官方网站选择目前最新的Python3.x版本下载Windows用户请务必勾选“AddPy</div> </li> <li><a href="/article/1938861128960503808.htm" title="【RAG面试题】LLMs已经具备了较强能力,存在哪些不足点?" target="_blank">【RAG面试题】LLMs已经具备了较强能力,存在哪些不足点?</a> <span class="text-muted">一叶千舟</span> <a class="tag" taget="_blank" href="/search/AI%E9%9D%A2%E8%AF%95%E9%A2%98%E3%80%90RAG%E3%80%91/1.htm">AI面试题【RAG】</a><a class="tag" taget="_blank" href="/search/RAG/1.htm">RAG</a> <div>目录LLMs核心不足点1、知识过时与静态性(LackofReal-Time&DynamicKnowledge):2、幻觉与事实性错误(Hallucinations&FactualInaccuracies):3、领域专业知识深度不足(LimitedDomain-SpecificExpertise):4、缺乏透明度和可追溯性(LackofTransparency&Traceability):5、上下文</div> </li> <li><a href="/article/1938858862463479808.htm" title="算法竞赛备考冲刺必刷题(C++) | 洛谷 P8814 解密" target="_blank">算法竞赛备考冲刺必刷题(C++) | 洛谷 P8814 解密</a> <span class="text-muted">热爱编程的通信人</span> <a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。欢迎大家订阅我的专栏:算法题解:C++与Python实现!附上汇总贴:算法竞赛备考冲刺必刷题(C++)|汇总【题目来源】洛谷:P8814[CSP-J2022]解密-洛</div> </li> <li><a href="/article/1938857599847952384.htm" title="程序化交易系统中如何精准获取MACD、KDJ、BOLL等基础指标的值?" target="_blank">程序化交易系统中如何精准获取MACD、KDJ、BOLL等基础指标的值?</a> <span class="text-muted">股票程序化交易接口</span> <a class="tag" taget="_blank" href="/search/%E9%87%8F%E5%8C%96%E4%BA%A4%E6%98%93/1.htm">量化交易</a><a class="tag" taget="_blank" href="/search/%E8%82%A1%E7%A5%A8API%E6%8E%A5%E5%8F%A3/1.htm">股票API接口</a><a class="tag" taget="_blank" href="/search/Python%E8%82%A1%E7%A5%A8%E9%87%8F%E5%8C%96%E4%BA%A4%E6%98%93/1.htm">Python股票量化交易</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%8C%96%E4%BA%A4%E6%98%93%E7%B3%BB%E7%BB%9F/1.htm">程序化交易系统</a><a class="tag" taget="_blank" href="/search/macd%E6%8C%87%E6%A0%87/1.htm">macd指标</a><a class="tag" taget="_blank" href="/search/kdj%E6%8C%87%E6%A0%87/1.htm">kdj指标</a><a class="tag" taget="_blank" href="/search/boll%E6%8C%87%E6%A0%87/1.htm">boll指标</a><a class="tag" taget="_blank" href="/search/%E8%82%A1%E7%A5%A8%E9%87%8F%E5%8C%96%E6%8E%A5%E5%8F%A3/1.htm">股票量化接口</a><a class="tag" taget="_blank" href="/search/%E8%82%A1%E7%A5%A8API%E6%8E%A5%E5%8F%A3/1.htm">股票API接口</a> <div>Python股票接口实现查询账户,提交订单,自动交易(1)Python股票程序交易接口查账,提交订单,自动交易(2)股票量化,Python炒股,CSDN交流社区>>>基础指标在程序化交易系统中的重要性基础指标对交易决策的指导意义MACD、KDJ、BOLL等基础指标在程序化交易系统中扮演着重要角色。MACD可以帮助判断市场的趋势和买卖信号,通过分析其快线和慢线的交叉情况,能为投资者提供入场和出场的参</div> </li> <li><a href="/article/1938857601018163200.htm" title="股票程序化交易软件如何选择?这些要点你知道吗" target="_blank">股票程序化交易软件如何选择?这些要点你知道吗</a> <span class="text-muted">股票程序化交易接口</span> <a class="tag" taget="_blank" href="/search/%E9%87%8F%E5%8C%96%E4%BA%A4%E6%98%93/1.htm">量化交易</a><a class="tag" taget="_blank" href="/search/%E8%82%A1%E7%A5%A8API%E6%8E%A5%E5%8F%A3/1.htm">股票API接口</a><a class="tag" taget="_blank" href="/search/Python%E8%82%A1%E7%A5%A8%E9%87%8F%E5%8C%96%E4%BA%A4%E6%98%93/1.htm">Python股票量化交易</a><a class="tag" taget="_blank" href="/search/%E5%8C%BA%E5%9D%97%E9%93%BE/1.htm">区块链</a><a class="tag" taget="_blank" href="/search/%E8%82%A1%E7%A5%A8%E7%A8%8B%E5%BA%8F%E5%8C%96%E4%BA%A4%E6%98%93%E8%BD%AF%E4%BB%B6/1.htm">股票程序化交易软件</a><a class="tag" taget="_blank" href="/search/%E5%8A%9F%E8%83%BD%E7%89%B9%E6%80%A7/1.htm">功能特性</a><a class="tag" taget="_blank" href="/search/%E7%A8%B3%E5%AE%9A%E6%80%A7/1.htm">稳定性</a><a class="tag" taget="_blank" href="/search/%E6%88%90%E6%9C%AC/1.htm">成本</a><a class="tag" taget="_blank" href="/search/%E8%82%A1%E7%A5%A8%E9%87%8F%E5%8C%96%E6%8E%A5%E5%8F%A3/1.htm">股票量化接口</a><a class="tag" taget="_blank" href="/search/%E8%82%A1%E7%A5%A8API%E6%8E%A5%E5%8F%A3/1.htm">股票API接口</a> <div>Python股票接口实现查询账户,提交订单,自动交易(1)Python股票程序交易接口查账,提交订单,自动交易(2)股票量化,Python炒股,CSDN交流社区>>>了解软件功能特性基础交易功能基础交易功能是股票程序化交易软件的核心。它应具备快速下单、撤单等基础操作能力。比如在行情快速变化时,能让投资者迅速抓住机会下单,或者及时撤单避免损失。软件的交易界面要简洁明了,方便投资者操作。还应支持多种交</div> </li> <li><a href="/article/1938855453471600640.htm" title="Python爬虫实战:全方位爬取知乎学习板块问答数据" target="_blank">Python爬虫实战:全方位爬取知乎学习板块问答数据</a> <span class="text-muted">Python爬虫项目</span> <a class="tag" taget="_blank" href="/search/2025%E5%B9%B4%E7%88%AC%E8%99%AB%E5%AE%9E%E6%88%98%E9%A1%B9%E7%9B%AE/1.htm">2025年爬虫实战项目</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/scrapy/1.htm">scrapy</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a> <div>1.项目背景与爬取目标知乎是中国最大的知识问答社区,聚集了大量高质量的学习资源和经验分享。爬取知乎“学习”板块的问答数据,可以为学习资料整理、舆情分析、推荐系统开发等提供数据支持。本项目目标:爬取“学习”话题下的热门问答列表抓取每个问答的标题、作者、回答内容、点赞数、评论数等详细信息实现动态加载内容的抓取,包含图片和富文本避免被反爬机制限制,保证数据采集稳定结合数据分析,为后续应用打基础2.知乎“</div> </li> <li><a href="/article/1938855454511788032.htm" title="Python实战:自动在知乎回答点赞并采集内容的高阶爬虫教程" target="_blank">Python实战:自动在知乎回答点赞并采集内容的高阶爬虫教程</a> <span class="text-muted">Python爬虫项目</span> <a class="tag" taget="_blank" href="/search/2025%E5%B9%B4%E7%88%AC%E8%99%AB%E5%AE%9E%E6%88%98%E9%A1%B9%E7%9B%AE/1.htm">2025年爬虫实战项目</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/okhttp/1.htm">okhttp</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>✨写在前面:为什么做知乎自动化操作?知乎作为中国领先的知识问答平台,拥有大量结构化内容。对于研究舆情分析、情绪识别、用户画像,甚至产品舆情反馈采集的用户来说,如何自动获取知乎内容并进行交互行为(如点赞、回答),是一个非常实用的能力。本文将手把手带你用Python完成以下目标:✅自动登录知乎✅自动搜索某个关键词下的热门问题✅自动点赞高质量回答✅自动采集回答内容(文本、点赞数、评论数等)✅自动保存为本</div> </li> <li><a href="/article/108.htm" title="Nginx负载均衡" target="_blank">Nginx负载均衡</a> <span class="text-muted">510888780</span> <a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/%E5%BA%94%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">应用服务器</a> <div>Nginx负载均衡一些基础知识: nginx 的 upstream目前支持 4 种方式的分配 1)、轮询(默认)       每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 2)、weight       指定轮询几率,weight和访问比率成正比</div> </li> <li><a href="/article/235.htm" title="RedHat 6.4 安装 rabbitmq" target="_blank">RedHat 6.4 安装 rabbitmq</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/erlang/1.htm">erlang</a><a class="tag" taget="_blank" href="/search/rabbitmq/1.htm">rabbitmq</a><a class="tag" taget="_blank" href="/search/redhat/1.htm">redhat</a> <div>在 linux 下安装软件就是折腾,首先是测试机不能上外网要找运维开通,开通后发现测试机的 yum 不能使用于是又要配置 yum 源,最后安装 rabbitmq 时也尝试了两种方法最后才安装成功 机器版本: [root@redhat1 rabbitmq]# lsb_release LSB Version: :base-4.0-amd64:base-4.0-noarch:core</div> </li> <li><a href="/article/362.htm" title="FilenameUtils工具类" target="_blank">FilenameUtils工具类</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/FilenameUtils/1.htm">FilenameUtils</a><a class="tag" taget="_blank" href="/search/common-io/1.htm">common-io</a> <div>转载请出自出处:http://eksliang.iteye.com/blog/2217081 一、概述 这是一个Java操作文件的常用库,是Apache对java的IO包的封装,这里面有两个非常核心的类FilenameUtils跟FileUtils,其中FilenameUtils是对文件名操作的封装;FileUtils是文件封装,开发中对文件的操作,几乎都可以在这个框架里面找到。 非常的好用。 </div> </li> <li><a href="/article/489.htm" title="xml文件解析SAX" target="_blank">xml文件解析SAX</a> <span class="text-muted">不懂事的小屁孩</span> <a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a> <div>xml文件解析:xml文件解析有四种方式, 1.DOM生成和解析XML文档(SAX是基于事件流的解析) 2.SAX生成和解析XML文档(基于XML文档树结构的解析) 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML 本文章用第一种方法进行解析,使用android常用的DefaultHandler import org.xml.sax.Attributes; </div> </li> <li><a href="/article/616.htm" title="通过定时任务执行mysql的定期删除和新建分区,此处是按日分区" target="_blank">通过定时任务执行mysql的定期删除和新建分区,此处是按日分区</a> <span class="text-muted">酷的飞上天空</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>使用python脚本作为命令脚本,linux的定时任务来每天定时执行 #!/usr/bin/python # -*- coding: utf8 -*- import pymysql import datetime import calendar #要分区的表 table_name = 'my_table' #连接数据库的信息 host,user,passwd,db = </div> </li> <li><a href="/article/743.htm" title="如何搭建数据湖架构?听听专家的意见" target="_blank">如何搭建数据湖架构?听听专家的意见</a> <span class="text-muted">蓝儿唯美</span> <a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a> <div>Edo Interactive在几年前遇到一个大问题:公司使用交易数据来帮助零售商和餐馆进行个性化促销,但其数据仓库没有足够时间去处理所有的信用卡和借记卡交易数据  “我们要花费27小时来处理每日的数据量,”Edo主管基础设施和信息系统的高级副总裁Tim Garnto说道:“所以在2013年,我们放弃了现有的基于PostgreSQL的关系型数据库系统,使用了Hadoop集群作为公司的数</div> </li> <li><a href="/article/870.htm" title="spring学习——控制反转与依赖注入" target="_blank">spring学习——控制反转与依赖注入</a> <span class="text-muted">a-john</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>       控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心。 控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。依赖注入应用比较广泛。   </div> </li> <li><a href="/article/997.htm" title="用spool+unixshell生成文本文件的方法" target="_blank">用spool+unixshell生成文本文件的方法</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/xshell/1.htm">xshell</a> <div>例如我们把scott.dept表生成文本文件的语句写成dept.sql,内容如下:   set pages 50000;   set lines 200;   set trims on;   set heading off;   spool /oracle_backup/log/test/dept.lst;   select deptno||','||dname||','||loc </div> </li> <li><a href="/article/1124.htm" title="1、基础--名词解析(OOA/OOD/OOP)" target="_blank">1、基础--名词解析(OOA/OOD/OOP)</a> <span class="text-muted">asia007</span> <a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/1.htm">学习基础知识</a> <div>OOA:Object-Oriented Analysis(面向对象分析方法) 是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。OOA与结构化分析有较大的区别。OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。   OOA(面向对象的分析)模型由5个层次(主题层、对象类层、结构层、属性层和服务层)</div> </li> <li><a href="/article/1251.htm" title="浅谈java转成json编码格式技术" target="_blank">浅谈java转成json编码格式技术</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/json%E7%BC%96%E7%A0%81/1.htm">json编码</a><a class="tag" taget="_blank" href="/search/java%E8%BD%AC%E6%88%90json%E7%BC%96%E7%A0%81/1.htm">java转成json编码</a> <div>json编码;是一个轻量级的数据存储和传输的语言       在java中需要引入json相关的包,引包方式在工程的lib下就可以了   JSON与JAVA数据的转换(JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非   常适合于服务器与 JavaScript 之间的数据的交</div> </li> <li><a href="/article/1378.htm" title="web.xml之Spring配置(基于Spring+Struts+Ibatis)" target="_blank">web.xml之Spring配置(基于Spring+Struts+Ibatis)</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/web.xml/1.htm">web.xml</a><a class="tag" taget="_blank" href="/search/SSI/1.htm">SSI</a><a class="tag" taget="_blank" href="/search/spring%E9%85%8D%E7%BD%AE/1.htm">spring配置</a> <div>指定Spring配置文件位置 <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/spring-dao-bean.xml,/WEB-INF/spring-resources.xml, /WEB-INF/</div> </li> <li><a href="/article/1505.htm" title="Installing SonarQube(Fail to download libraries from server)" target="_blank">Installing SonarQube(Fail to download libraries from server)</a> <span class="text-muted">sunjing</span> <a class="tag" taget="_blank" href="/search/Install/1.htm">Install</a><a class="tag" taget="_blank" href="/search/Sonar/1.htm">Sonar</a> <div>1.  Download and unzip the SonarQube distribution 2.  Starting the Web Server The default port is "9000" and the context path is "/". These values can be changed in &l</div> </li> <li><a href="/article/1632.htm" title="【MongoDB学习笔记十一】Mongo副本集基本的增删查" target="_blank">【MongoDB学习笔记十一】Mongo副本集基本的增删查</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a> <div>一、创建复本集   假设mongod,mongo已经配置在系统路径变量上,启动三个命令行窗口,分别执行如下命令:   mongod --port 27017 --dbpath data1 --replSet rs0 mongod --port 27018 --dbpath data2 --replSet rs0 mongod --port 27019 -</div> </li> <li><a href="/article/1759.htm" title="Anychart图表系列二之执行Flash和HTML5渲染" target="_blank">Anychart图表系列二之执行Flash和HTML5渲染</a> <span class="text-muted">白糖_</span> <a class="tag" taget="_blank" href="/search/Flash/1.htm">Flash</a> <div>今天介绍Anychart的Flash和HTML5渲染功能   HTML5 Anychart从6.0第一个版本起,已经逐渐开始支持各种图的HTML5渲染效果了,也就是说即使你没有安装Flash插件,只要浏览器支持HTML5,也能看到Anychart的图形(不过这些是需要做一些配置的)。 这里要提醒下大家,Anychart6.0版本对HTML5的支持还不算很成熟,目前还处于</div> </li> <li><a href="/article/1886.htm" title="Laravel版本更新异常4.2.8-> 4.2.9 Declaration of ... CompilerEngine ... should be compa" target="_blank">Laravel版本更新异常4.2.8-> 4.2.9 Declaration of ... CompilerEngine ... should be compa</a> <span class="text-muted">bozch</span> <a class="tag" taget="_blank" href="/search/laravel/1.htm">laravel</a> <div>昨天在为了把laravel升级到最新的版本,突然之间就出现了如下错误: ErrorException thrown with message "Declaration of Illuminate\View\Engines\CompilerEngine::handleViewException() should be compatible with Illuminate\View\Eng</div> </li> <li><a href="/article/2013.htm" title="编程之美-NIM游戏分析-石头总数为奇数时如何保证先动手者必胜" target="_blank">编程之美-NIM游戏分析-石头总数为奇数时如何保证先动手者必胜</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E4%B9%8B%E7%BE%8E/1.htm">编程之美</a> <div> import java.util.Arrays; import java.util.Random; public class Nim { /**编程之美 NIM游戏分析 问题: 有N块石头和两个玩家A和B,玩家A先将石头随机分成若干堆,然后按照BABA...的顺序不断轮流取石头, 能将剩下的石头一次取光的玩家获胜,每次取石头时,每个玩家只能从若干堆石头中任选一堆,</div> </li> <li><a href="/article/2140.htm" title="lunce创建索引及简单查询" target="_blank">lunce创建索引及简单查询</a> <span class="text-muted">chengxuyuancsdn</span> <a class="tag" taget="_blank" href="/search/%E6%9F%A5%E8%AF%A2/1.htm">查询</a><a class="tag" taget="_blank" href="/search/%E5%88%9B%E5%BB%BA%E7%B4%A2%E5%BC%95/1.htm">创建索引</a><a class="tag" taget="_blank" href="/search/lunce/1.htm">lunce</a> <div>import java.io.File; import java.io.IOException; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Docume</div> </li> <li><a href="/article/2267.htm" title="[IT与投资]坚持独立自主的研究核心技术" target="_blank">[IT与投资]坚持独立自主的研究核心技术</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/it/1.htm">it</a> <div>        和别人合作开发某项产品....如果互相之间的技术水平不同,那么这种合作很难进行,一般都会成为强者控制弱者的方法和手段.....        所以弱者,在遇到技术难题的时候,最好不要一开始就去寻求强者的帮助,因为在我们这颗星球上,生物都有一种控制其</div> </li> <li><a href="/article/2394.htm" title="flashback transaction闪回事务查询" target="_blank">flashback transaction闪回事务查询</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E9%97%AA%E5%9B%9E%E4%BA%8B%E5%8A%A1/1.htm">闪回事务</a> <div>   闪回事务查询有别于闪回查询的特点有以下3个: (1)其正常工作不但需要利用撤销数据,还需要事先启用最小补充日志。 (2)返回的结果不是以前的“旧”数据,而是能够将当前数据修改为以前的样子的撤销SQL(Undo SQL)语句。 (3)集中地在名为flashback_transaction_query表上查询,而不是在各个表上通过“as of”或“vers</div> </li> <li><a href="/article/2521.htm" title="Java I/O之FilenameFilter类列举出指定路径下某个扩展名的文件" target="_blank">Java I/O之FilenameFilter类列举出指定路径下某个扩展名的文件</a> <span class="text-muted">游其是你</span> <a class="tag" taget="_blank" href="/search/FilenameFilter/1.htm">FilenameFilter</a> <div>这是一个FilenameFilter类用法的例子,实现的列举出“c:\\folder“路径下所有以“.jpg”扩展名的文件。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 </div> </li> <li><a href="/article/2648.htm" title="C语言学习五函数,函数的前置声明以及如何在软件开发中合理的设计函数来解决实际问题" target="_blank">C语言学习五函数,函数的前置声明以及如何在软件开发中合理的设计函数来解决实际问题</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a> <div># include <stdio.h> int f(void) //括号中的void表示该函数不能接受数据,int表示返回的类型为int类型 { return 10; //向主调函数返回10 } void g(void) //函数名前面的void表示该函数没有返回值 { //return 10; //error 与第8行行首的void相矛盾 } in</div> </li> <li><a href="/article/2775.htm" title="今天在测试环境使用yum安装,遇到一个问题: Error: Cannot retrieve metalink for repository: epel. Pl" target="_blank">今天在测试环境使用yum安装,遇到一个问题: Error: Cannot retrieve metalink for repository: epel. Pl</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a> <div>今天在测试环境使用yum安装,遇到一个问题: Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again   处理很简单,修改文件“/etc/yum.repos.d/epel.repo”, 将baseurl的注释取消, mirrorlist注释掉。即可。 &n</div> </li> <li><a href="/article/2902.htm" title="单例模式" target="_blank">单例模式</a> <span class="text-muted">shuizhaosi888</span> <a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F/1.htm">单例模式</a> <div>单例模式      懒汉式 public class RunMain { /** * 私有构造 */ private RunMain() { } /** * 内部类,用于占位,只有 */ private static class SingletonRunMain { priv</div> </li> <li><a href="/article/3029.htm" title="Spring Security(09)——Filter" target="_blank">Spring Security(09)——Filter</a> <span class="text-muted">234390216</span> <a class="tag" taget="_blank" href="/search/Spring+Security/1.htm">Spring Security</a> <div>Filter 目录 1.1     Filter顺序 1.2     添加Filter到FilterChain 1.3     DelegatingFilterProxy 1.4     FilterChainProxy 1.5</div> </li> <li><a href="/article/3156.htm" title="公司项目NODEJS实践0.1" target="_blank">公司项目NODEJS实践0.1</a> <span class="text-muted">逐行分析JS源代码</span> <a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a><a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/nodejs/1.htm">nodejs</a> <div>  一、前言         前端如何独立用nodeJs实现一个简单的注册、登录功能,是不是只用nodejs+sql就可以了?其实是可以实现,但离实际应用还有距离,那要怎么做才是实际可用的。         网上有很多nod</div> </li> <li><a href="/article/3283.htm" title="java.lang.Math" target="_blank">java.lang.Math</a> <span class="text-muted">liuhaibo_ljf</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/Math/1.htm">Math</a><a class="tag" taget="_blank" href="/search/lang/1.htm">lang</a> <div>System.out.println(Math.PI); System.out.println(Math.abs(1.2)); System.out.println(Math.abs(1.2)); System.out.println(Math.abs(1)); System.out.println(Math.abs(111111111)); System.out.println(Mat</div> </li> <li><a href="/article/3410.htm" title="linux下时间同步" target="_blank">linux下时间同步</a> <span class="text-muted">nonobaba</span> <a class="tag" taget="_blank" href="/search/ntp/1.htm">ntp</a> <div>今天在linux下做hbase集群的时候,发现hmaster启动成功了,但是用hbase命令进入shell的时候报了一个错误  PleaseHoldException: Master is initializing,查看了日志,大致意思是说master和slave时间不同步,没办法,只好找一种手动同步一下,后来发现一共部署了10来台机器,手动同步偏差又比较大,所以还是从网上找现成的解决方</div> </li> <li><a href="/article/3537.htm" title="ZooKeeper3.4.6的集群部署" target="_blank">ZooKeeper3.4.6的集群部署</a> <span class="text-muted">roadrunners</span> <a class="tag" taget="_blank" href="/search/zookeeper/1.htm">zookeeper</a><a class="tag" taget="_blank" href="/search/%E9%9B%86%E7%BE%A4/1.htm">集群</a><a class="tag" taget="_blank" href="/search/%E9%83%A8%E7%BD%B2/1.htm">部署</a> <div>ZooKeeper是Apache的一个开源项目,在分布式服务中应用比较广泛。它主要用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步、集群管理、配置文件管理、同步锁、队列等。这里主要讲集群中ZooKeeper的部署。   1、准备工作 我们准备3台机器做ZooKeeper集群,分别在3台机器上创建ZooKeeper需要的目录。   数据存储目录</div> </li> <li><a href="/article/3664.htm" title="Java高效读取大文件" target="_blank">Java高效读取大文件</a> <span class="text-muted">tomcat_oracle</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>  读取文件行的标准方式是在内存中读取,Guava 和Apache Commons IO都提供了如下所示快速读取文件行的方法:   Files.readLines(new File(path), Charsets.UTF_8);   FileUtils.readLines(new File(path));   这种方法带来的问题是文件的所有行都被存放在内存中,当文件足够大时很快就会导致</div> </li> <li><a href="/article/3791.htm" title="微信支付api返回的xml转换为Map的方法" target="_blank">微信支付api返回的xml转换为Map的方法</a> <span class="text-muted">xu3508620</span> <a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/map/1.htm">map</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1api/1.htm">微信api</a> <div>举例如下: <xml>    <return_code><![CDATA[SUCCESS]]></return_code>    <return_msg><![CDATA[OK]]></return_msg>    <appid><</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>