伪装浏览器,我们要知道http,get,post,基本上这三个就够,以为暂时也没用什么高级功能。
再装个fiddler,试了下,python发出的请求它也能捕获到(毕竟,实际上它是客服端与服务器间的代理,都是走127.0.0.1:8888的),所以我们只要先用浏览器访问一下目标页面,然后把需要的header复制下来就可以了。
上一次的爬虫是直接urllib.request.urlopen(url),这回要用到urllib.request.Request
开始一个最简单的模拟,伪装
#encoding=utf-8
import urllib;
import urllib.request;
class browserTest:
def __init__(self):
self.__url='https://www.baidu.com';#有时也要注意http还是https,刚才就错了
self.__header={#从fiddler复制的header,当然还有别的东西
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36',
'Connection': 'keep-alive'
};
def go(self):
self.__req=urllib.request.Request(url=self.__url,headers=self.__header);#简单的就是再请求里面加个浏览器认证么,以及可能出现的其他条条款框都可以放到header
self.__res=urllib.request.urlopen(self.__req);
print(self.__res.read());
if __name__=='__main__':
app=browserTest();
app.go();