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

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

从云主机运行

虽然云计算的花费可能是无底洞,但是写这篇文章时,启动一个计算实例最便宜只要每小时1.3美分(亚马逊EC2的micro实例,其他实例会更贵),Google最便宜的计算实例是每小时4.5美分,最少需要用10分钟。考虑计算能力的规模效应,从大公司买一个小型的云计算实例的费用,和自己买一台实体机的费用应该差不多——不过用云计算不需要雇人去维护设备。

设置好计算实例之后,你就有了新IP地址、用户名,以及可以通过SSH进行实例连接的公私密钥了。后面要做的每件事情,都应该和你在实体服务器上干的事情一样了——当然,你不需要再担心硬件维护,也不用运行复杂多余的监控工具了。

总结:爬虫被封禁常见原因列表

如果你一直被网站封杀却找不到原因,那么这里有个检查列表,可以帮你诊断一下问题出在哪里。

首先,检查JavaScript。如果你从网络服务器收到的页面是空白的,缺少信息,或其遇到他不符合你预期的情况(或者不是你在浏览器上看到的内容),有可能是因为网站创建页面的JavaScript执行有问题。

检查正常浏览器提交的参数。如果你准备向网站提交表单或发出POST请求,记得检查一下页面的内容,看看你想提交的每个字段是不是都已经填好,而且式也正确。用Chrome浏览器的网络面板(快捷键F12打开开发者控制台,然后点击“Network”即可看到)查看发送到网站的POST命令,确认你的每个参数都是正确的。

是否有合法的Cookie?如果你已经登录网站却不能保持登录状态,或者网站上出现了其他的“登录状态”异常,请检查你的cookie。确认在加载每个页面时cookie都被正确调用,而且你的cookie在每次发起请求时都发送到了网站上。

IP被封禁?如果你在客户端遇到了HTTP错误,尤其是403禁止访问错误,这可能说明网站已经把你的IP当作机器人了,不再接受你的任何请求。你要么等待你的IP地址从网站黑名单里移除,要么就换个IP地址(可以去星巴克上网)。如果你确定自己并没有被封杀,那么再检查下面的内容。

确认你的爬虫在网站上的速度不是特别快。快速采集是一种恶习,会对网管的服务器造成沉重的负担,还会让你陷入违法境地,也是IP被网站列入黑名单的首要原因。给你的爬虫增加延迟,让它们在夜深人静的时候运行。切记:匆匆忙忙写程序或收集数据都是拙劣项目管理的表现;应该提前做好计划,避免临阵慌乱。

还有一件必须做的事情:修改你的请求头!有些网站会封杀任何声称自己是爬虫的访问者。如果你不确定请求头的怎样才算合适,就用你自己浏览器的请求头吧。

确认你没有点击或访问任何人类用户通常不能点击或接入的信息。

如果你用了一大堆复杂的手段才接入网站,考虑联系一下网管吧,告诉他们你的目的。试试发邮件到webmaster@<域名>或admin@<域名>,请求网管允许你使用爬虫采集数据。管理员也是人嘛!

【以上内容整理自《Python 网络数据采集》第10、12、14章】

图片15

作者:Ryan Mitchell 译者:陶俊杰,陈小莉 定价:59

原书4.6星好评,一本书搞定数据采集 涵盖数据抓取、数据挖掘和数据分析 提供详细代码示例,快速解决实际问题

网络上的数据量越来越大,单靠浏览网页获取信息越来越困难,如何有效地提取并利用信息已成为一个巨大的挑战。 本书采用简洁强大的Python语言,介绍了网络数据采集,并为采集新式网络中的各种数据类型提供了全面的指导。第一部分重点介绍网络数据采集的基本原理:如何用Python从网络服务器请求信息,如何对服务器的响应进行基本处理,以及如何以自动化手段与网站进行交互。第二部分介绍如何用网络爬虫测试网站,自动化处理,以及如何通过更多的方式接入网络。搜索引擎爬虫工作原理


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

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

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