运行平台: 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()方法,就可以提取出信息。