1、爬虫实现原理

通用爬虫工作原理

通用爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。

搜索引擎的工作流程

抓取网页

搜索引擎使用通用爬虫来抓取网页,其基本工作流程与其他爬虫类似。

数据存储

搜索引擎将数据存入原始页面数据库,其中的页面数据与浏览器得到的HTML是完全一样的。

预处理

搜索引擎将爬虫抓取回来的页面,进行各种步骤的预处理。

检索和排名

搜索引擎为用户提供关键字检索服务,同时会根据页面的PageRank值来进行网站排名。

聚焦爬虫工作原理

聚焦爬虫需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接,并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。

2、爬虫抓取网页的详细流程

3、通用爬虫中网页的分类

4、通用爬虫相关网站文件

robots.txt文件

网站通过robots.txt文件来告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。

当一个网络爬虫访问一个站点时,它会先检查该站点根目录下是否存在robots.txt文件。

robots.txt文件使用#号进行注释。

Robots协议只是一种建议,它没有实际的约束力,网络爬虫可以选择不遵守这个协议,但可能会存在一定的法律风险。

Sitemap.xml文件

为了方便网站管理员通知爬虫遍历和更新网站的内容,而无需爬取每个网页,网站提供了Sitemap.xml文件(网站地图)。

尽管Sitemap.xml文件提供了爬取网站的有效方式,但仍需要对其谨慎对待,这是因为该文件经常会出现缺失或过期的问题。

5、防爬虫应对策略

很多网络爬虫对网页的爬取能力很差,现在的网站会采取一些防爬虫措施来阻止爬虫的不当爬取行为。

对于采取了防爬虫措施的网站,爬虫程序需要采取相应的应对策略,才能成功地爬取到网站上的数据。

伪装User-agent

User-agent表示用户代理,是HTTP协议中的一个字段,其作用是描述发出HTTP请求的终端信息。每个正规的爬虫都有固定的User-agent,只要将这个字段设为知名的用户代理,就能够成功伪装。

使用代理IP

代理IP就是介于用户和网站之间的第三者,即用户先将请求发送给代理IP,之后代理IP再发送到服务器。服务器会将代理IP视为爬虫的IP,同时用多个代理IP,可以降低单个IP地址的访问量,极有可能逃过一劫。

降低访问频率

如果没有找到既免费又稳定的代理IP,则可以降低访问网站的频率,防止对方从访问量上认出爬虫的身份,不过爬取效率会差很多。为了弥补这个缺点,我们可以基于这个思想适时调整具体的操作。例如,每抓取一个页面就休息若干秒,或者限制每天抓取的页面数量。

验证码限制

虽然有些网站不登陆就能访问,但是它一检测到某IP的访问量有异常,就会马上提出登陆要求,并随机提供一个验证码。碰到这种情况,大多数情况下需要采取相应的技术识别验证码,只有正确输入验证码,才能够继续爬取网站。不过,识别验证码的技术难度还是比较大的。

6、为什么选择Python做爬虫

抓取网页的接口更简洁

Python的urllib包提供了较为完整的访问网页文档的API;相比与其他静态编程语言(如Java、C#、C++),Python抓取网页文档的接口更简洁。

网页抓取后的处理更简单

Python的Beautiful Soup提供了简洁的文档处理功能,能用极短的代码完成大部分文档的处理。

开发效率高

因为爬虫的具体代码得根据网站不同而修改的,而Python这种灵活的脚本语言特别适合这种任务。

上手快

网络上Python的教学资源很多,便于大家学习,出现问题也很容易找到相关资料。另外,Python还有强大的成熟爬虫框架的支持,比如Scrapy。

7、八爪鱼工具的使用案例

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐