定义
爬虫是一种自动化程序,通过模拟浏览器行为或直接访问网站的接口,从网页中提取有用信息的程序
作用
用于从大量网页中收集数据,例如商品价格、股票行情、新闻、社交媒体信息等等
流程
-
了解目标网站:在开始爬取之前,需要对目标网站进行了解,包括目标网站的 URL 结构、HTML/CSS/JavaScript 的代码结构等等。
-
发送 HTTP 请求:Python 爬虫使用 requests 库向目标网站发送 HTTP 请求,获取网页的 HTML 源码。
-
解析 HTML:使用 Beautiful Soup 或 lxml 等库对 HTML 源码进行解析,提取需要的信息,例如标题、摘要、正文、图片链接等等。
-
存储数据:将爬取到的数据存储到数据库、文件或者内存中,方便后续的分析和使用。
-
定期更新:定期更新爬取的数据,保证数据的及时性和准确性。
范例
|
|
常用工具
BeautifulSoup
参数
类
css选择器
定义
用于选择 HTML 或 XML 文档中某个或某些元素的模式
分类
-
标签选择器:通过元素的标签名进行选择,如 p 选择所有 <p> 元素。
-
类选择器:通过元素的class 属性值进行选择,如 .class-name 选择所有 class 属性值为 class-name 的元素
-
id 选择器:通过元素的 id 属性值进行选择,如 #id-name 选择 id 属性值为 id-name 的元素。
-
属性选择器:通过元素的属性值进行选择,如 [attribute=value] 选择所有具有 attribute 属性,且属性值为 value 的元素。
-
后代选择器:通过元素的父子关系进行选择,如 div p 选择所有 <p> 元素,其父元素为 <div>。
-
子选择器:通过元素的父子关系进行选择,但只选择直接子元素,如 div > p 选择所有 <p> 元素,其父元素为 <div>。
-
通配符选择器:选择所有元素,如 * 选择所有元素。
防反爬虫
-
降低爬虫程序的访问频率,避免短时间内对网站的过多访问。
-
通过设置 User-Agent、Referer、Cookie 等 HTTP 头部信息,模拟浏览器的访问行为,避免被识别为爬虫程序。
-
使用代理 IP,避免单一 IP 大量访问同一个网站而被封禁。
-
避免同时进行大量并发访问,采用异步请求或者分布式爬虫等技术来分散访问压力。
-
遵守网站的 robots.txt 规则,避免访问被禁止的页面和内容。
-
添加延时和随机性
|
|
- 使用验证码识别库
|
|