zoukankan      html  css  js  c++  java
  • 爬虫之修改请求头

    爬虫第一篇

    由于我是自学爬虫的第一篇博客,也许是最后一篇,全看我心情。

    import requests # 导入requests模块,用来获取网页的
    url='某网址'       #你要爬取的网页的网址
    try:               #这个不讲了,不懂看前面的python基础模块。
        r=requests.get(url)    #通过get方法获取一个url的response对象,就是r
        r.raise_for_status()   # 这个方法用来返回网络响应码,200未成功获取,非200全都是失败,直接抛出异常
        r.encoding=r.apparent_encoding #这个方法是用来确定编码的,一般的网站编码都是什么ISO的,然后备用编码才是utf8,要看一下,这里一他的备用编码为标准获取。
        print(r.text[1000:2000])# 打印获取的内容
    except:
        print('爬取失败') #爬取失败执行这句
    

    我来依次解释一下每行的作用,写在每行后面注释好了。。

    为什么不放图。。因为我发现放图,比放代码麻烦多了

    以上的代码爬取百度页面没什么问题,但是有一些网页是做过处理的,他只接受浏览器的访问,而我们上述的代码会被发现是python用户的访问,会被终止。来我们看一下

    img

    通过这段代码来看自己的request请求信息的请求头是什么。

    img

    这里清楚地写着user-agent是python请求,以这种请求去爬人家的网页,无异于高举我是小偷我来偷钱的旗子去银行打转。

    所以你不能这样直白,不能这样忠实,你得伪装,得支棱起来,你得表现得像一个普通的用户通过浏览器去访问网页一样,神他妈不知,鬼他妈不觉的把数据爬走。

    这个时候通过键值对的形式,来吧你的请求头给改掉。

    import requests
    url='https://www.amazon.cn/gp/product/B01KQ9DNV2/ref=s9_acsd_al_bw_c_x_2_w?pf_rd_m=A1U5RCOVU0NYF2&pf_rd_s=merchandised-search-6&pf_rd_r=5S57RBWWA2E9F2E4J5PX&pf_rd_t=101&pf_rd_p=8de7b4df-8fdc-4255-a322-c08f47a0d585&pf_rd_i=2071292071'
    try:
        kv={'user-agent':'Mozilla/5.0'}
        r=requests.get(url,headers=kv)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        print(r.text[1000:2000])
        print(r.request.headers)
    except:
        print('爬取失败')
    
    

    搞一个字典,里面写上这个,mozilla/5.0,这是什么呢,这好像是浏览器的一种,这个时候放进get方法里面,就可以改变你的狗头了,你已经无懈可击了个屁了。

    img

    你看,请求头变成了这个,好了你可以成功的访问这个页面并且爬数据了。

    今天就先讲这么多

    有缘还会再见。

  • 相关阅读:
    hdu1251统计难题(trie树)
    线段树
    poj2632Crashing Robots
    UVA10194 Football (aka Soccer)
    hdu1166敌兵布阵(线段树)
    【洛谷P3810】【模板】三维偏序(陌上花开)
    【洛谷P2480】古代猪文
    【洛谷P3449】PALPalindromes
    【洛谷P4777】扩展中国剩余定理(EXCRT)
    【洛谷P2421】荒岛野人
  • 原文地址:https://www.cnblogs.com/chanyuli/p/11390520.html
Copyright © 2011-2022 走看看