目录
1.爬虫--定义
2.爬虫--组成
3.爬虫--URL
1.爬虫--定义
网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。例如:传统的通用搜索引擎AltaVista,Yahoo!和Google等,作为一个辅助人们检索信息的工具也存在着一定的局限性,通用搜索引擎的目标是尽可能大的网络覆盖率,返回的结果包含大量用户不关心的网页,为了解决上述问题,定向抓取相关网页资源的爬虫应运而生。
由于互联网数据的多样性和资源的有限性,根据用户需求定向抓取网页并分析,已成为主流的爬取策略。只要你能通过浏览器访问的数据都可以通过爬虫获取,爬虫的本质是模拟浏览器打开网页,获取网页中我们想要的那部分数据。
2.爬虫--组成
模块 | 核心功能 | 常用工具/技术 | 关键优化点 |
---|---|---|---|
调度器 | 管理URL抓取优先级与任务队列 | Scrapy调度器、Redis队列、RabbitMQ | 去重策略、分布式任务分配 |
下载器 | 发送HTTP请求获取网页内容 | requests、aiohttp、Selenium | 代理轮换、请求头伪装、异步并发 |
解析器 | 提取数据(文本/API响应) | BeautifulSoup、XPath、正则表达式 | 动态渲染、数据清洗与结构化 |
数据存储 | 持久化存储抓取结果 | MySQL/MongoDB、CSV/JSON文件、Elasticsearch | 批量插入、索引优化 |
反爬策略 | 绕过反爬机制(验证码、频率限制) | 代理IP池、OCR打码、Cookies模拟登录 | 请求延迟随机化、User-Agent轮换 |
监控与日志 | 记录运行状态与异常报警 | logging模块、Prometheus+Grafana | 错误重试、性能指标可视化 |
3.爬虫--URL
术语 | 定义 | 核心功能 | 示例 |
---|---|---|---|
网页(Web Page) | 由HTML/CSS/JavaScript编写的单个文档,通过浏览器渲染显示内容。 | 展示文本、图像、视频等具体信息。 | https://example.com/about.html |
网站(Website) | 由多个相互链接的网页组成的集合,共享同一域名和主题。 | 提供完整服务或信息体系(如电商、博客)。 | https://example.com (含主页、子页面) |
网络服务器(Web Server) | 存储网站文件(网页、图片等)的硬件/软件,响应客户端请求并返回数据。 | 托管网站内容,处理HTTP请求(如Apache、Nginx)。 | 阿里云ECS、AWS EC2实例 |
搜索引擎(Search Engine) | 通过爬虫索引网页,提供关键词检索服务的系统。 | 快速定位全网公开资源(如网页、图片)。 | Google、百度、Bing |
URL:
早在1989年,网络发明人蒂姆·伯纳斯 - 李(Tim Berners-Lee)就提出了网站的三大支柱:
1)URL ,跟踪Web文档的地址系统
2)HTTP,一个传输协议,以便在给定URL时查找文档
3)HTML, 允许嵌入超链接的文档格式
Web的最初目的是提供一种简单的方式来访问,阅读和浏览文本文档。从那时起,网络已经发展到提供图像,视频和二进制数据的访问,但是这些改进几乎没有改变三大支柱。
在Web之前,很难访问文档并从一个文档跳转到另一个文档。WWW(World Wide Web,万维网)简称为3W,使用统一资源定位符(URL)来标志WWW上的各种文档。
完整的工作流程如下∶
- Web用户使用浏览器(指定URL)与Web服务器建立连接,并发送浏览请求。
- Web服务器把URL转换为文件路径,并返回信息给 Web浏览器。
- 通信完成,关闭连接。
HTTP:超文本传送协议(HTTP)是在客户程序(如浏览器)与WWW服务器程序之间进行交互所使用的协议。HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接,它使用TCP连接进行可靠传输,服务器默认监听在80端口。
URL:代表统一资源定位器。URL 只不过是 Web 上给定的唯一资源的地址。理论上,每个有效的 URL 都指向一个唯一的资源。此类资源可以是 HTML 页面、CSS 文档、图像等。
组成部分 说明 **示例(以 http://www.example.com:80/path/to/myfile.html?key1=value1#anchor
为例)协议 指定访问资源的协议(如 http
、https
、ftp
),后跟://
分隔符。http:
域名/IP 服务器的地址(如 www.example.com
或192.168.1.1
)。www.example.com
端口 可选,服务器监听的端口号(默认端口可省略,如 HTTP 默认 80
)。:80
(可省略)资源路径 服务器上资源的路径,包含虚拟目录和文件名。 /path/to/myfile.html
查询参数 可选,以 ?
开头,键值对形式(如?key1=value1&key2=value2
)。?key1=value1
锚点 可选,以 #
开头,指向资源内的特定位置(如 HTML 锚点或视频时间戳)。#anchor