Python的requests包在抓取页面的时候页面源代码抓取不完全,页面数据不是动态加载的。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python的requests包在抓取页面的时候页面源代码抓取不完全,页面数据不是动态加载的。相关的知识,希望对你有一定的参考价值。

只能抓取到页面开头的部分,后面到结尾都抓不到,怎么回事?

您好,首先,sys.setdefaultencoding is evil。
其次,不会用 Requests 就去看文档,不要乱来。
如果 Requests 检测不到正确的编码,那么你告诉它正确的是什么:
response.encoding = 'gbk'
print response.text
原始内容在 response.content 里,bytes,自己想怎么处理就怎么处理。

单个请求完全没必要用 Session。直接 requests.get(xxx) 就可以了。
最后,弄不明白怎么处理编码错误的字符串就仔细想想,或者用 Python 3.x,不要散弹枪编程。
以下是 Python 3。Python 2 在那个字符串前加个 u 告诉它是 unicode 也一样。
参考技术A 不用这么麻烦,直接鼠标点在网页上,右键查看网页源代码,里面如果没有你想要的数据,那就是动态加载了。现在很多页面都只是个架子,数据都是动态加载的,可以直接调试抓取数据接口。 参考技术B 不知道你的网页有多大,建议把上面的文本保存到文件来检查,控制台说不定有滚动和截断

以上是关于Python的requests包在抓取页面的时候页面源代码抓取不完全,页面数据不是动态加载的。的主要内容,如果未能解决你的问题,请参考以下文章

我的第一个的python抓取 单页面爬虫

scrapy递归抓取网页数据

感谢网页使用python或pyspark抓取多个页面

Python使用lxml模块和Requests模块抓取HTML页面的教程

在 Python 中抓取 - 防止 IP 禁令

如何使用 Python 和 Selenium 进行分页抓取页面