requests.get为什么得到的内容和查看源文件不一样?

  • Post author:
  • Post category:其他

由于初学爬虫 尝试着在beausoup库和re正则间来回爬去加强对两种方法的理解 但是利用正则的时候出现了一个这么个问题

源文件打开 找到的元素 在requests.get竟然没有 虽然很简单的一个问题 但是困扰了我半个多小时 这里吧一些经验总结下来 避免少走弯路

拿最简单的静态 贴吧为例

我们打开url:         http://tieba.baidu.com/i/i/fans?u=4f5fe69d8ee4b9904d16

如果我们想爬取关注的人员昵称

我们打开源文件 找到某个具体的姓名

打开是这样的

比如我们利用正则 找到名字的位置 

names=re.findall(‘<a id=”add_blacklist_btn” href=”#” n=”(.*?)” inid=”i”‘,html.text)     爬去名字 

返回竟然是一个空集 

当我们输出一下html.text时我们发现 竟然和源文件不一样

经过百度 才知道 贴吧不是js解析的网页 只要在headers加一个cookie即可

具体操作如下

headers={‘User-Agent’:’Mozilla/xxxxxxxxxxxxetaSr 1.0′,
        ‘Host’:’tieba.baidu.com’,
         ‘Referer’:’http://tieba.baidu.com/i/i/fans?u=4f5fe69d8ee4b9904d16′,
        ‘Cookie’:’BAIDUID=ED02DEFE60A617EF43B8F0F72EDE4DE6:FG=1; BIDUPSID=ED02DEFE60A617EF43B8F0F72EDE4DE6; PSTM=1508720102;TIEBA_USERTYPE=e916512815a19960b624ed59; bdshare_firstime=1508724078966; FP_LASTTIME=1510621935104; TIEBAUID=151fb0a2f5bc99698d3e338b;rpln_guide=1; BDUSS=pBOFZsUG5PdFAxMnFtQU5DWEIxMDVOTWYyZWxyczB- fm10cjVPaElCQ0d2anRhQVFBQUFBJCQAAAAAAAAAAAEAAABPX00WwO7A1gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAIYxFFqGMRRaZk; STOKEN=180a7f530458725c97dfccdcbe99215e0ad64c49b8bc8e47d74a59bbbb9c0874; fixed_bar=1; wise_device=0;LONGID=374169423; Hm_lvt_98b9d8c2fd6608d564bf2ac2ae642948=1512029668,1512050336,1512050702,1512089508;Hm_lpvt_98b9d8c2fd6608d564bf2ac2ae642948=1512092098 ; BDRCVFR[feWj1Vr5u3D]=I67x6TjHwwYf0; PSINO=2;H_PS_PSSID=1466_21092_18559_25178_22075; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598′,
        }

那么这些表头在哪里找呢

我们打开所要爬去的网页 按下F12  然后点里面的Network(需要点F5刷新下)

然后里面出现一个文件  我们点开 所有的信息都在里面了


把自己的 headers 加在get中就可以爬到和源文件一样的内容了


版权声明:本文为qq_24753293原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。