您的位置:首页 > 理论基础 > 计算机网络

[备忘]Python网络爬虫伪造报头

2016-02-22 10:29 246 查看
使用python从大量URL抓取内容时,往往容易出现bug,如httplib.BadStatusLine: '',403,Socket Error。

很大一部分原因是服务器认为是恶意攻击不予响应。因此需要认为伪造报头来处理。

Chrome右键检查,Network,点开加载项header则可以看到报头信息。

req_header = {

'Host':'pic.581r.com',

'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36',

'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',

'Connection':'keep-alive',

}

timeout = 30

reee = urllib2.Request(link,None,req_header)

rsss = urllib2.urlopen(reee,None,timeout)

content2 = rsss.read()

with open(target,'wb') as code:

code.write(content2)

rsss.close()

time.sleep(1)

最好每次都把打开的内容关闭以防报错。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: