Python
基础语法
01概念
02安装
03变量
04字符串
05数
06常量与注释
07列表
08元组
09if语句
10字典
11集合
12复合数据类型对比
13推导式
14用户输入
15while循环
16函数
17类
18面向对象编程
19文件操作
20异常处理
21日期和时间
22魔术方法
23内置函数
24线程
25并发&并行
26正则表达式
27迭代器
28装饰器
29生成器
30上下文管理器
31函数式编程
32闭包
33解包
34工具库
35连接关系型数据库
36虚拟环境
37异步编程
网络爬虫
01urllib库[了解]
02requests库
03数据交换格式
04解析库
05lxml
06Beautiful Soup
07Xpath语法
08动态网页的处理
-
+
首页
网络爬虫
**网络爬虫**(Web Crawler),也被称为**网络蜘蛛**(Web Spider)、**网络机器人**(Web Robot),或简称**爬虫**,是一种按照预设规则,自动地抓取万维网信息的程序或脚本。 **核心类比**: 想象一只蜘蛛在互联网这张巨大的网上爬行。网页通过超链接相互连接,形成一张网。爬虫从一个初始URL(种子URL)开始,像蜘蛛一样,读取页面内容,找到页面中的所有链接,然后选择性地继续爬向这些新链接,如此循环,尽可能多地抓取网络上的信息。 ### 工作原理 网络爬虫的工作流程可以抽象为一个高度重复的循环过程,其核心步骤如下图所示: ```mermaid flowchart TD A([开始]) --> B[URL管理器: 获取待抓取URL] B -- 是 --> C[网页下载器: 下载页面<br>发送HTTP请求, 获取HTML响应] C --> D{下载成功?} D -- 是 --> E[网页解析器: 解析HTML内容] D -- 否或超时 --> B E --> F{解析结果} F -- 提取到有效数据 --> G[数据存储器: 存储数据<br>文件/数据库] F -- 发现新URL链接 --> H[URL管理器: 补充新URL<br>并进行去重] G --> I[本轮抓取完成] H --> B B -- 否: 无待抓取URL<br>或达到停止条件 --> J([结束]) style A fill:#90EE90,stroke:#333,stroke-width:2px style J fill:#FFC0CB,stroke:#333,stroke-width:2px style B fill:#e1f5fe,stroke:#01579b style C fill:#e1f5fe,stroke:#01579b style E fill:#e1f5fe,stroke:#01579b style G fill:#e1f5fe,stroke:#01579b style H fill:#e1f5fe,stroke:#01579b ``` ### 技术栈与常用工具 | 类别 | 工具/库 | 说明 | | ---------- | --------------------- | ------------------------------------------------------------ | | **请求库** | requests | 简单易用的HTTP库,同步请求,适合绝大多数场景。 | | | aiohttp | 支持异步HTTP请求,速度快,适合大规模高并发爬取。 | | | Selenium / Playwright | **浏览器自动化**工具。用于爬取**JavaScript渲染**的动态页面。它们能模拟真实用户操作浏览器。 | | **解析库** | BeautifulSoup | 优秀的解析库,通常配合 lxml 作为解析后端,API非常友好。 | | | lxml | 高性能的HTML/XML解析库,支持XPath和CSS选择器。 | | | pyquery | 语法类似jQuery,适合前端开发者。 | | **框架** | Scrapy | **专业的爬虫框架**。功能强大,内置了异步处理、中间件、管道等组件,适合大型爬虫项目。 | | | PySpider | 另一个强大的分布式爬虫框架,带有WebUI。 | | **存储** | pandas | 可方便地将数据存储为Excel、CSV等格式。 | | | PyMySQL / SQLAlchemy | 操作MySQL数据库。 | | | pymongo | 操作MongoDB数据库。 | | **其他** | Redis | 常用作分布式爬虫的URL管理器,高效去重。 | | | **代理IP** | 使用代理IP池轮询请求,避免IP被目标网站封禁。 | | | **User-Agent** | 轮换不同的浏览器标识,模拟真实用户。 | ### 爬虫的类型 **通用爬虫**: - 目标:尽可能大地对互联网进行抓取,建立庞大的索引数据库。 - 代表:Google、百度等搜索引擎的爬虫。 **聚焦爬虫**: - 目标:针对特定主题、特定领域或特定网站的网页进行有选择性的抓取。 - 代表:大多数为特定数据分析目的而编写的爬虫。 **增量式爬虫**: - 特点:只抓取更新过的或新产生的页面,避免重复抓取未变化的页面,节省资源。 **深度爬虫**: - 特点:会抓取那些隐藏在深层、需要提交表单、登录或进行多次点击才能访问到的页面。
毛林
2025年9月7日 12:10
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码