2、其次这里爬虫数据爬的是头条api。
3、最后利用构造虚拟浏览器+cookie+GET,进行抓数据,这样简单一点。
1、从用户请求的Headers反爬虫是最常见的反爬虫策略。伪装header。很多网站都会对Headers的User-Agent进行检测,还有一部分网站会对Referer进行检测(一些资源网站的防盗链就是检测Referer)。如果遇到了这类反爬虫机制,可以直接在爬虫中添加Headers,将浏览器的User-Agent复制到爬虫的Headers中;或者将Referer值修改为目标网站域名[评论:往往容易被忽略,通过对请求的抓包分析,确定referer,在程序中模拟访问请求头中添加]。对于检测Headers的反爬虫,在爬虫中修改或者添加Headers就能很好的绕过。
2、基于用户行为反爬虫
还有一部分网站是通过检测用户行为,例如同一IP短时间内多次访问同一页面,或者同一账户短时间内多次进行相同操作。[这种防爬,需要有足够多的ip来应对]
(1)、大多数网站都是前一种情况,对于这种情况,使用IP代理就可以解决。可以专门写一个爬虫,爬取网上公开的代理ip,检测后全部保存起来。有了大量代理ip后可以每请求几次更换一个ip,这在requests或者urllib中很容易做到,这样就能很容易的绕过第一种反爬虫。
编写爬虫代理:
步骤:
1.参数是一个字典{'类型':'代理ip:端口号'}
proxy_support=urllib.request.ProxyHandler({})
2.定制、创建一个opener
opener=urllib.request.build_opener(proxy_support)
3a.安装opener
urllib.request.install_opener(opener)
3b.调用opener
opener.open(url)
用大量代理随机请求目标网站,应对反爬虫
1、监控网站
监控网站其实就是去爬网页的源码,每次对比或检查网页源码特定位置的html代码是否有变化即可,具体可以用
from urllib import requestpage = request.urlopen("网址")
html = page.read()
就可以获取网页源码;
2、发送高警
建议别用邮件,邮件发多几次就会认为你的发件箱有发垃圾邮件的嫌疑。用 喵提醒 ,是个公众号,可以免费发提醒到手机上。调用方法也和监控网页代码类似,具体自己看喵提醒的教程。