这里介绍几种工作中遇到过的常见反爬虫机制及应对策略。
爬虫的君子协议
有些网站希望被搜索引擎抓住,有些敏感信息网站不希望被搜索引擎发现。
网站内容的所有者是网站管理员,搜索引擎应该尊重所有者的意愿,为了满足以上等等,就需要提供一种网站和爬虫进行沟通的途径,给网站管理员表达自己意愿的机会。有需求就有供应,robots协议就此诞生。
scrapy是默认遵守robots协议的,需要我们在settings.py文件中将代码改成
ROBOTSTXT_OBEY = Flase
封锁请求头
当访问过于频繁的时候,网站后台会去识别你的请求头,判断你是浏览器访问,还是程序访问。
我们只需要伪造请求头信息,制造出浏览器访问的假象。
以下分别提供三个爬虫代码的请求头更改
1 import requests 2 import re 3 4 url = 'https://list.tmall.com/search_product.htm?q=%B0%D7%BE%C6&type=p&vmarket=&spm=875.7931836%2FB.a2227oh.d100&from=mallfp..pc_1_searchbutton' 5 6 headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063'} 7 8 content = requests.get(url,headers=headers)
requests版
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:日常反反爬虫 - Python技术站