网络爬虫:urllib模块应用2--请求头

  • 当我们发起请求的时候,为避免对方检测到我们是一个爬虫,我们在发起请求的时候需要模拟浏览器发起请求,即在发起请求的时候需要携带浏览器名称的参数。
  1. 可以打开浏览器:查看元素-->network-->找到请求头-->User-Agent-->设置浏览器名称
USER_AGDNTS = [
    'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
    'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:64.0) Gecko/20100101 Firefox/64.0',
    'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1',
    'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0',
]
req_header = {
    'User-Agent':random.choice(USER_AGDNTS)
}
#构建一个request对象
req = request.Request(url,headers=req_header)

#根据Request对象发起请求
response = request.urlopen(req)
  1. 可以下载一个fake_useragent模块生成浏览器名称
from fake_useragent import UserAgent

#实例化一个UA
user_agent = UserAgent()

#获取google浏览器的ua
print(user_agent.chrome)
#获取火狐浏览器的ua
print(user_agent.firefox)
#获取safar浏览器的ua
print(user_agent.safari)
#随机获取ua
print(user_agent.random)
from urllib import request
#目标url
url = 'https://github.com/hellysmile/fake-useragent'
#构建请求头
req_header = {
    'User-Agent':user_agent.random
}
#构建一个Request对象
req = request.Request(url,headers=req_header)
#另一种方式添加请求头
req.add_header('Referer','https://github.com/search?q=fake-useragent')
#从请求头中取出一个请求头的参数
print(req.get_header('Referer'))
#发起请求
response = request.urlopen(req,timeout=10)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • HTTP基本原理 URI、URL、URN(Uninform Resource) URI(Identifier):统...
    GHope阅读 2,142评论 2 26
  • 什么是爬虫? 就是一段自动获取互联网数据的程序 ( 网络爬虫就是为其提供信息来源的程序 ),,,请求网站并提取...
    恬恬i阿萌妹O_o阅读 455评论 0 0
  • 在写爬虫的时候,经常会遇到一个难题,就是反爬虫。反爬虫策略一般就是检测user-agent,IP等等信息,辨别是机...
    爱折腾的胖子阅读 751评论 0 2
  • 画堂春---夜思 词---清逸幽兰 冰轮隔雾探西窗,薄衫残烛生凉。夜阑孤坐赋愁章,魂落他乡。 叶别柴门远去,淡烟凄...
    清逸幽兰阅读 245评论 0 1
  • “宋亦程,你女朋友挺不错啊,命好啊你”,邓南举杯与宋亦程碰了碰杯,如是说到 “哦,你说沈娆啊?恩,是不错。...
    稣啪蜜阅读 518评论 0 0