课程作业需要用到爬虫,记录一下自己踩过的坑
1、使用requests.get()响应内容调用text方法中文出现乱码
爬虫抓取到的网页响应调用text方法,网页中的中文出现乱码
问题原因:获取到的响应的编码方式与原网页不同,因此需要先修改响应的编码方式,要正确显示内容有一下两种方法
方法(一) 仍然想要通过调用text方法返回网页的文本格式
更改网页的encoding属性,改为与网页对应的编码方式(网页的编码方式可以在网页的response headers - content type中查看)
response = requests.get(url=url, headers=Header) #header是用于UA伪装的字典
# 发生乱码可以通过print(response.encoding)来查看错误的编码
response.encoding = "utf-8" # 这里的uft-8为网页正确的编码格式, 可以通过浏览器分析网页,在response header中找到content type中查看网页实际的编码方式
response = response.text # 此时就可以得到中文没有发生乱码的网页
方法(二) 调用.content方法
调用content方法返回的是二进制格式的网页内容
此时只要在content方法的返回内容之后调用decode方法,并且将编码方式设置为网页正确的编码格式即可
response = requests.get(url=url, headers=Header).content.decode("utf-8")
809

被折叠的 条评论
为什么被折叠?



