美文网首页python爬虫专题python爬虫日记本
python3的爬虫笔记2——伪装浏览器

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

作者: X_xxieRiemann | 来源:发表于2017-04-23 14:08 被阅读829次

    有些网站会检查你是不是真的浏览器访问,还是机器自动访问的。这种情况,加上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

    相关文章

      网友评论

      本文标题:python3的爬虫笔记2——伪装浏览器

      本文链接:https://www.haomeiwen.com/subject/zqqyzttx.html