由于初学爬虫 尝试着在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中就可以爬到和源文件一样的内容了