python3的爬虫笔记2——伪装浏览器

有些网站会检查你是不是真的浏览器访问,还是机器自动访问的。这种情况,加上User-Agent,表明你是浏览器访问即可。服务器会识别headers中的referer是不是它自己,如果不是,有的服务器不会响应,所以我们还可以在headers中加入referer。以谷歌浏览器的开发者工具为例(右键检查或Ctrl+Shift+I),刷新页面,在Network模块中我们点开左边name中项目,可以看到一些信息,其中我们就可以看到Referer和User-Agent的信息,把它们复制下。

chrome开发者工具.png

伪装的格式为:

# 伪装成浏览器访问,适用于拒绝爬虫的网站
headers = {'User-Agent':'XXXXX'} 
#或者
headers = {'Referer':'XXXXX'}
#一般是字典格式,最好将User-Agent和Referer的信息都加上
headers = {'User-Agent':'XXXXX', 'Referer':'XXXXX'}
(1)方法一使用requests模块
import requests
url = 'http://www.baidu.com'
#添加头部,伪装浏览器,字典格式
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.103 Safari/537.36'}
#增加headers参数
response = requests.get(url=url, headers=headers)
response.encoding = 'utf-8'
html = response.text
print(html)
(2)方法二使用urllib模块
 import urllib.request
url = 'http://www.baidu.com'
#添加头部,伪装浏览器
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.103 Safari/537.36'}
#Request类的实例,构造时需要传入Url,Data,headers等等的内容
resquest = urllib.request.Request(url=url, headers=headers)
response = urllib.request.urlopen(resquest).read()
html = response.decode('utf-8')
print(html)

参考:
https://github.com/lining0806/PythonSpiderNotes

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,027评论 19 139
  • 声明:本文讲解的实战内容,均仅用于学习交流,请勿用于任何商业用途! 一、前言 强烈建议:请在电脑的陪同下,阅读本文...
    Bruce_Szh阅读 12,814评论 6 28
  • Python学习网络爬虫主要分3个大的版块:抓取,分析,存储 另外,比较常用的爬虫框架Scrapy,这里最后也详细...
    楚江数据阅读 1,482评论 0 6
  • 首先列举一下本人总结的相关文章,这些覆盖了入门网络爬虫需要的基本概念和技巧:宁哥的小站-网络爬虫当我们在浏览器中输...
    Python程序媛阅读 306评论 0 0
  • Linux对我们的生活有着很大的影响。至少,你的安卓手机上面就有Linux内核。然而,头一次入手Linux只会让你...
    geeooooz阅读 706评论 0 7