【爬虫练习错误1 】:在爬取的时候获取源代码是正常的(源代码正常,但是里面的汉字是乱码),但是在获取具体的文本内容出现乱码的现象——解决方法

本文讲述了如何使用Python爬虫从网站上抓取《三国演义》章节名称时遇到的乱码问题,通过设置正确的User-Agent和检测并设置响应对象的编码,解决了爬取过程中源代码显示正常但内容乱码的问题。
摘要由CSDN通过智能技术生成

一、爬取要求

爬取诗词名句网上三国演义的章节名称,并获取每章的详细内容。

https://www.shicimingju.com/book/sanguoyanyi.html

二、完整代码

import requests
url = "https://www.shicimingju.com/book/sanguoyanyi.html"
headers = {'User-Agent': 'Mozilla/5.0 '}  # 此处身份载体标识不完整
response = requests.get(url=url, headers=headers)
page_text = response.text
print(page_text)    # 获取首页源代码

三、运行结果

源代码可以运行出来,但是里面所包含的汉字出现乱码现象。

四、解决方法

import requests
url = "https://www.shicimingju.com/book/sanguoyanyi.html"
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0'}
response = requests.get(url=url, headers=headers)
# 在发送请求完获取响应对象response对象后,需要对response对象设置编码格式
# 其中response.apparent_encoding为获取响应对象的编码格式
# response.encoding为设置对象的编码格式
response.encoding = response.apparent_encoding
page_text = response.text
print(page_text)    # 获取首页源代码

部分运行结果如下:

为什么这样做就可以运行出来?在爬取的时候获取源代码是正常的(源代码正常,但是里面的汉字是乱码),但是在获取具体的文本内容出现乱码的现象,造成这种结果最可能的原因是编码方式不对,但是我通过查询我的python3的编码方式是utf-8,去查看网页源代码也是utf-8,按理说运行结果应该是正常的,但是最后获取的数据竟然出现乱码的现象。

经过大佬指点,虽然源代码指明编码格式是utf-8,但是他用了一些其他的编码格式来迷惑爬虫,在这个时候就需要先进行检测编码格式,然后再进行爬虫 的相关步骤。

或者就是通过上述代码,对获取的对象编码

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值