Python爬取诗词名句网中三国演义的乱码问题

一、乱码问题

为解决中文乱码问题,可使用chardet.detect()检测文本编码格式

详细:

Python爬虫解决中文乱码_脑子不好真君的博客-CSDN博客

二、代码

python 复制代码
#爬取三国演义
import requests
import chardet
from bs4 import BeautifulSoup

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/117.0.0.0 Safari/537.36 Edg/117.0.2045.47'
}

resp=requests.get(url=url,headers=headers)
encoding=chardet.detect(resp.content)["encoding"]
#print(encoding)
resp.encoding=encoding
page_text=resp.text
#print(page_text)

soup=BeautifulSoup(page_text,'lxml')
li_list=soup.select('.book-mulu > ul > li')
#print(li_list)
fp=open('D:\\Programming\\Microsoft VS Code Data\\WebCrawler\\data\\sanguo\\sanguo.txt',
        'a+',
        encoding=encoding,
        )
for li in li_list:
    title=li.a.string
    zhangjie_url='https://www.shicimingju.com'+li.a['href']
    zhangjie_page=requests.get(url=zhangjie_url,headers=headers)
    encoding=chardet.detect(zhangjie_page.content)['encoding']
    zhangjie_page.encoding=encoding
    #print(encoding)
    zhangjie_page_text=zhangjie_page.text

    zhangjie_soup=BeautifulSoup(zhangjie_page_text,'lxml')
    div_content=zhangjie_soup.find('div',class_='chapter_content')
    content=div_content.text
    fp.write(title+'\n'+content+'\n')
    print(title,'爬取成功!')
fp.close()
相关推荐
CryptoPP10 分钟前
对接BSE交易所获取数据。
python·金融·数据挖掘·数据分析·区块链
电商API_1800790524716 分钟前
淘宝商品数据爬虫技术实践指南
大数据·数据库·人工智能·爬虫
老歌老听老掉牙17 分钟前
PyQt5中RadioButton互斥选择的实现方法
开发语言·python·qt
Pyeako18 分钟前
Opencv计算机视觉
人工智能·python·深度学习·opencv·计算机视觉
还不秃顶的计科生25 分钟前
LeetCode 热题 100第一题:两数之和python版本
python·算法·leetcode
2401_8414956432 分钟前
【Python高级编程】2026 丙午马年元旦祝福程序
python·动画·tkinter·程序·pyinstaller·元旦·turtle
该醒醒了~33 分钟前
使用auto-py-to-exe打包python程序exe并添加图标和ico文件
python
idealzouhu35 分钟前
【Android】深入浅出 JNI
android·开发语言·python·jni
Serendipity_Carl42 分钟前
淘宝商品数据爬取实战:突破sign签名与Cookie验证
爬虫·js逆向
兜兜转转了多少年1 小时前
《Python 应用机器学习:代码实战指南》笔记2 从0理解机器学习 —— 核心概念全解析
笔记·python·机器学习