前面博客介绍了python标准库urllib2的基本使用和linux系统curl命令伪装http_referer和user-agent访问,不懂的可以点击链接再看下。这篇文章继续以伪装为目的,不过完全使用urllib2来实现。步骤如下,先创建request对象,然后修改request对象以增加header信息,最后把request对象传递给urllib2的urlopen方法。
代码如下:
#coding:utf-8
import urllib2
def visitWebsite(url,timeout=60):
req=urllib2.Request(url)
req.add_header('Referer', 'https://zhangnq.com/')
req.add_header('User-Agent',"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36")
try:
response=urllib2.urlopen(req,timeout=timeout)
print "Url: %s\t%s" % (url,response.getcode())
except urllib2.URLError as e:
if hasattr(e, 'code'):
print "Url: %s\t%s" % (url,e.code)
elif hasattr(e, 'reason'):
print "Url: %s\t%s" % (url,'error')
except:
pass
finally:
if response:
response.close()
if __name__ == '__main__':
urls=[
'http://www.baidu.com/',
'http://www.qq.com/',
]
for url in urls:
visitWebsite(url)
这个伪装一般做网站采集可能会用到。好了,就是那么简单。
参考网址:https://zhangnq.com/2249.html