Python爬虫黑科技让你的爬虫程序更像人类用户的行为

运行平台: Windows

Python版本: Python3.x

IDE: Sublime text3

黑科技

网站防采集的前提就是要正确地区分人类访问用户和网络机器人。现在网站有很多技术来防止爬虫,比如验证码,对于一些简单的数字验证码,可以使用训练好的caffemodel诸如此类的模型去识别,准确率还是可以的。

构造合理的HTTP请求头

部分参加说明:

设置Cookie的学问

Cookie信息,也可以更具实际情况填写。不过requests已经封装好了很多操作,自动管理cookie,session保持连接。我们可以先访问某个目标网站,建立一个session连接之后,获取cookie。代码如下:

运行结果如下:

接下来呢,还是以实例出发,对 网站调用 webdriver 的 get_cookie()方法来查看 cookie(D:/phantomjs-2.1.1-windows/bin/phantomjs.exe是我的PhantomJS路径,这里需要更改成你自己的):

注意隐含输入字段

爬虫如何避开蜜罐

这三个元素通过三种不同的方式对用户隐藏:

第一个链接是通过简单的 CSS 属性设置 display:none 进行隐藏;电话号码字段 name=”phone” 是一个隐含的输入字段;邮箱地址字段 name=”email” 是将元素向右移动 50 000 像素(应该会超出电脑显示器的边界)并隐藏滚动条。

Selenium 抓取出了每个隐含的链接和字段,结果如下所示:

创建自己的代理IP池

可以看到,通过这种方法,很容易的就获得了这100个IP,包括他们的协议、IP和端口号。这里我是用”#”符号隔开,使用之前,只需要spilt()方法,就可以提取出信息。