python 用requests获取网页源代码为啥中文显示错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 用requests获取网页源代码为啥中文显示错误相关的知识,希望对你有一定的参考价值。

参考技术A 查看一下网页的编码,比如是gbk的话,就r.encoding='gbk'。一下内容摘自requests文档
requests会自动解码来自服务器的内容。大多数unicode字符集都能被无缝地解码。
请求发出后,requests会基于http头部对响应的编码作出有根据的推测。当你访问
r.text
之时,requests会使用其推测的文本编码。你可以找出requests使用了什么编码,并且能够使用
r.encoding
属性来改变它:
r.encoding
'utf-8'
r.encoding
=
'iso-8859-1'
如果你改变了编码,每当你访问
r.text
,request都将会使用
r.encoding
的新值。你可能希望在使用特殊逻辑计算出文本的编码的情况下来修改编码。比如
http

xml
自身可以指定编码。这样的话,你应该使用
r.content
来找到编码,然后设置
r.encoding
为相应的编码。这样就能使用正确的编码解析
r.text
了。

Python requests爬取今日头条,为啥获取不了网页内容

headers =
'user - agent': 'Mozilla / 5.0(Windows NT 10.0; WOW64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 53.0.2785.104Safari / 537.36Core / 1.53.4882.400QQBrowser / 9.7.13059.400'

response = requests.get('http://toutiao.com/group/6552087122092753412', headers = headers)
print(response.text)
-------------------------------------------------------------------------
得到的结果:
---------------------------------------------------------------------------
E:\Python_Pro\Spider\venv\Scripts\python.exe E:/Python_Pro/toutiao/jiepai.py
<html><head></head><body></body></html>

进程已结束,退出代码0
-----------------------------------------------------------------
求大神解答,是因为这个网页有反爬虫机制吗?我需要怎么破解。。萌新求大神指导

感觉并没有什么反爬吧,照着你的写明明可以获取图片呀

也不大可能是requests的版本问题吧,我2.12.4都可以额~

追问

额。这就奇怪了?我这print(response.text),显示不了网页源代码,只能显示

<html><head></head><body></body></html>,导致后面要爬取图片直接报错。

参考技术A 这个是网页的反爬虫机制决定的,在requests请求的时候加入headers参数就可以了

以上是关于python 用requests获取网页源代码为啥中文显示错误的主要内容,如果未能解决你的问题,请参考以下文章

python如何获取网页源码中整个<body>的内容?

Python爬虫如何获取网页Network中某个文件的response?

Python获取网页html代码

利用requests获取网页的源代码

1python爬虫 request.urlopen请求网页获取源码

python 获取网页代码url为啥不能为ip?