requests.get为什么得到的内容和查看源文件不一样?
来源:互联网 发布:迅雷已死 知乎 编辑:程序博客网 时间:2024/05/17 08:36
由于初学爬虫 尝试着在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-fm10cjVPaElCQ0d2anRhQVFBQUFBJCQAAAAAAAAAAAEAAABPX00WwO7A1gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIYxFFqGMRRaZk; 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中就可以爬到和源文件一样的内容了
- requests.get为什么得到的内容和查看源文件不一样?
- 用iE查看看到的源码和火狐查看到的源码,360查看的源码为什么不一样,求助!!!
- 为什么,我在sqlplus和isqlplus中查看同一张表,怎么name显示的不一样?
- 为什么同样的Sql语句在SqlServer RDS 查询得到的和自己本机SqlServer 查询的不一样呢?
- 网页内容不能别COPY和禁止查看源文件(转载)
- java -version 和 javac -version 得到的版本号不一样
- requests.get 和 bs4.BeautifulSoup
- python的requests类库(一)requests库和urllib包对比:一个简单get请求
- 为什么RSA公钥每次加密得到的结果都不一样?
- java运算计算的方式得到的结果和通过计数器得到的结果不一样
- 用户名大小写不一样,显示的内容不一样
- sizeof()为什么不能得到指针指向内容的大小
- 工作总结---为什么想的和做的总是不一样
- 为什么Invalidate收到的ClipRectangle和发送的不一样
- 为什么layer的mask属性和photoshop的mask不一样
- 为什么栈和堆的生长方向不一样
- 为什么df和lsblk显示的内存不一样大
- navicat和doc下查看mysql的字符集不一样问题
- 欢迎使用CSDN-markdown编辑器
- 从入职时间长短剖析离职原因
- "Windows is not genuine" error in Windows 7 or Windows Server 2008 R2
- Swift语法-where关键字详解
- No dashboards are active for the current data set. 解决tensorboard无法启动和显示问题(pycharm启动)
- requests.get为什么得到的内容和查看源文件不一样?
- yum install 提示 except OSError, e: ^ SyntaxError: invalid syntax
- 服务器数据库等杂项
- linux下tomcat,jdk完整安装
- 'ascii' codec can't decode byte 0xef in position 0:ordinal not in range(128)错误解决与原理分析
- CentOs 安装java环境
- Spring Cloud (12) | Spring Cloud Zuul网关调用微服务,request请求参数是application/json
- 欢迎使用CSDN-markdown编辑器
- 伪类清浮动