反爬虫战争的胜利终将属于爬虫一方。
反 反爬原理
大部分网站的反爬机制都很简单,只要我们添加一定的headers、cookie信息就可以伪装通过验证,极少数网站会用到密匙加密等验证。
绕过淘宝反爬机制
1、裸爬实验
以需要登陆验证的淘宝商品页面为例。
import requests
url = https://s.taobao.com/search?initiative_id=tbindexz_20170306&ie=utf8&spm=a21bo.2017.201856-taobao-item.2&sourceId=tb.index&search_type=item&ssid=s5-e&commend=all&imgfile=&q=书包&suggest=history_1&_input_charset=utf-8&wq=&suggest_query=&source=suggest
r = requests.get(url)
print(r.text)
返回如下结果:
可以看到并没有返回想要的商品页信息,所以在爬取淘宝页面时必须绕过登录验证。
2、获取headers、cookie伪装
-
登录淘宝账号,并在页面按下 F12
-
点选Network页面
-
F5刷新页面
-
右击所指选项
-
选取“copy as cUrl (bash)”选项
-
打开cUrl To Python request 网站
https://curl.trillworks.com
-
粘贴拷贝内容至左侧并回车
-
将右侧结果选择复制至程序头部,并添加缺省参数
3、再次爬取淘宝页面
可以看到成功返回含商品信息的结果。