搜索引擎爬虫工作原理 Python爬虫突破封禁的6种常见方法(2)

电脑杂谈  发布时间:2017-12-26 18:06:27  来源:网络整理

安装Requests

可在模块的网站上找到下载链接

()和安装方法,或者用任意第三方Python模块安装器进行安装。

请求头可以通过requests模块进行自定义。https://www.whatismybrowser.com/网站就是一个非常棒的网站,可以让服务器测试浏览器的属性。我们用下面的程序来采集这个网站的信息,验证我们浏览器的cookie设置:

图片4

程序输出结果中的请求头应该和程序中设置的headers是一样的。

虽然网站可能会对HTTP请求头的每个属性进行“是否具有人性”的检查,但是我发现通常真正重要的参数就是User-Agent。无论做什么项目,一定要记得把User-Agent属性设置成不容易引起怀疑的内容,不要用Python-urllib/3.4。另外,如果你正在处理一个警觉性非常高的网站,就要注意那些经常用却很少检查的请求头,比如Accept-Language属性,也许它正是那个网站判断你是个人类访问者的关键。

请求头会改变你观看网络世界的方式

假设你想为一个机器学习的研究项目写一个语言翻译机,却没有大量的翻译文本来测试它的效果。很多大型网站都会为同样的内容提供不同的语言翻译,根据请求头的参数响应网站不同的语言版本。因此,你只要简单地把请求头属性从Accept-Language:en-US修改成Accept-Language:fr,就可以从网站上获得“Bonjour”(法语,你好)这些数据来改善翻译机的翻译效果了(大型跨国企业通常都是好的采集对象)。

请求头还可以让网站改变内容的布局样式。例如,用移动设备浏览网站时,通常会看到一个没有广告、Flash以及其他干扰的简化的网站版本。因此,把你的请求头User-Agent改成下面这样,就可以看到一个更容易采集的网站了!

User-Agent:Mozilla/5.0 (iPhone; CPU iPhone OS 712 like Mac OS X) App leWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D257 Safari/9537.53

2.设置cookie的学问

虽然cookie是一把双刃剑,但正确地处理cookie可以避免许多采集问题。网站会用cookie跟踪你的访问过程,如果发现了爬虫异常行为就会中断你的访问,比如特别快速地填写表单,或者浏览大量页面。虽然这些行为可以通过关闭并重新连接或者改变IP地址来伪装,但是如果cookie暴露了你的身份,再多努力也是白费。

在采集一些网站时cookie是不可或缺的。要在一个网站上持续保持登录状态,需要在多个页面中保存一个cookie。有些网站不要求在每次登录时都获得一个新cookie,只要保存一个旧的“已登录”的cookie就可以访问。

如果你在采集一个或者几个目标网站,建议你检查这些网站生成的cookie,然后想想哪一个cookie是爬虫需要处理的。有一些浏览器插件可以为你显示访问网站和离开网站时cookie是如何设置的。EditThisCookie()是我最喜欢的Chrome浏览器插件之一。

因为requests模块不能执行JavaScript,所以它不能处理很多新式的跟踪软件生成的cookie,比如GoogleAnalytics,只有当客户端脚本执行后才设置cookie(或者在用户浏览页面时基于网页事件产生cookie,比如点击按钮)。要处理这些动作,需要用Selenium和PhantomJS包。

Selenium与PhantomJS

Selenium()是一个强大的网络数据采集工具,最初是为网站自动化测试而开发的。搜索引擎爬虫工作原理近几年,它还被广泛用于获取精确的网站快照,因为它们可以直接运行在浏览器上。Selenium可以让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-56071-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...