import os.path

import requests
from bs4 import BeautifulSoup if __name__ == '__main__':
if not os.path.exists('./sanguoyanyi'):
os.mkdir('./sanguoyanyi') 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/106.0.0.0 Safari/537.36'
}
# 获取页面内容
# .encode('latin1').decode('utf-8-sig') 解决中文乱码
page = requests.get(url=url, headers=headers).text.encode('latin1').decode('utf-8-sig')
soup = BeautifulSoup(page, 'lxml')
a_list = soup.select('.book-mulu ul li a')
fp = open('./sanguoyanyi/sanguoyanyi.txt', 'w', encoding='utf-8')
for a in a_list:
# 获取章节标题
title = a.text
# 获取章节对应内容的url
href = 'https://www.shicimingju.com/' + a['href']
# 根据url获取内容页面数据
content = requests.get(href, headers=headers)
# 设置encoding避免爬取的时候中文乱码
content.encoding = 'utf-8'
content_soup = BeautifulSoup(content.text, 'lxml')
content_data = content_soup.find('div', class_='chapter_content').text
content_data = content_data.replace(u' ', u'')
fp.write(title + ':' + content_data + '\n')
print('下载章节{0}成功'.format(title))
fp.close()
print("下载完成")

Python爬取三国演义章节标题和内容(bs4爬取,解决中文乱码)的更多相关文章

  1. jpgraph 折线图--解决中文乱码的问题(标题和图例)

    在jpgraph根目录中: 如Jpg\jpgraph_ttf.inc.php 中开头添加 define('CHINESE_TTF_FONT','SIMYOU.TTF'); \Jpg\jpgraph_l ...

  2. python之MySQL MySQLdb 推荐使用姿势,解决中文乱码

    0.目录 2.setup(1) 安装步骤,可以顺带安装mysql administrator和mysql query browser(2) 安装完毕,修改 my.ini(3) 重启 mysql 服务: ...

  3. 在visual studio code 中配置python以及解决中文乱码问题

    安装好 visual stuido code (下面简称 “ VSC ”)后,要想使用它运行调试 python 代码还需要做一些工作以解决下列问题: 搭建 python 环境 print 打印中文出现 ...

  4. WinForm开发浏览器,WebBrowser获取页面内容,如何解决中文乱码

    WebBrowser的编码可以从文档对象中获得,将代码改为如下即可. System.IO.StreamReader getReader = new System.IO.StreamReader(thi ...

  5. python flask 解决中文乱码

    response = make_response(output_string)response.headers['Content-Type'] = 'text/plain;charset=UTF-8' ...

  6. Python中解决中文乱码问题

    乱码原因:因为你的文件声明为utf-8,并且也应该是用utf-8的编码保存的源文件.但是windows的本地默认编码是cp936,也就是gbk编码,所以在控制台直接打印utf-8的字符串当然是乱码了. ...

  7. python生成饼图解决中文乱码

    解决乱码问题 乱码的原因 字体的不匹配 解决的方法 加上引用中文字体就好了 matplotlib.rcParams['font.sans-serif'] = ['SimHei'] 代码 def sta ...

  8. python爬取三国演义的所有章节储存到本地文件中

    #爬取三国演义的全部章节 2 3 import urllib 4 import urllib.request 5 import urllib.parse 6 from lxml import etre ...

  9. Python3:爬取新浪、网易、今日头条、UC四大网站新闻标题及内容

    Python3:爬取新浪.网易.今日头条.UC四大网站新闻标题及内容 以爬取相应网站的社会新闻内容为例: 一.新浪: 新浪网的新闻比较好爬取,我是用BeautifulSoup直接解析的,它并没有使用J ...

  10. requests利用selenium,代理Ip,云打码,验证码抠图操作 爬取搜狗微信公众号内容

    爬取思路,爬取搜狗微信公众号内容,爬取第一层url时请求太快出现验证码,我这里用的蘑菇云代理,并在程序中我判断什么情况下是否+代理,做到合理运用代理ip.爬取第二层url时验证码出现次数更严重(和第一 ...

随机推荐

  1. Object类中wait带参方法和notifyAll方法-线程间通信

    Object类中wait带参方法和notifyAll方法 void wait (在其他线程调用此对象的notify()方法或notifyAll()方法前,导致当前线程等待.void wait  (lo ...

  2. Django框架之drf:8、断点调试,权限、认证、频率组件源码分析,基于APIView编写分页,异常处理

    Django框架之drf 一.断点调式使用 ​ 指,在我们编写代码的时候,程序运行出现报错是无可避免的,当程序 出现报错时,我们需要找到出现报错的代码进行修改,如果时简短的代码很容易就可以找到报错位置 ...

  3. mysql 错误解决大法 Specified key was too long; max key length is 767 bytes

    高版本mysql向低版本(5.7以下)导入sql时可能会发生此问题 开启索引最大长度 SET GLOBAL INNODB_LARGE_PREFIX = ON; 将表改为动态表SET GLOBAL in ...

  4. 插入排序(CSP-J 2021 T2)

    题目:(由于题干过长直接上链接:P7910 [CSP-J 2021] 插入排序 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)) 不是打广告 又有一个新思路: 我们可以再开一个b数组 ...

  5. 你好 ChatGPT, 帮我看下这段代码有什么问题?

    点赞再看,动力无限. 微信搜「程序猿阿朗 」. 本文 Github.com/niumoo/JavaNotes 和 未读代码博客 已经收录,有很多系列文章. 今天一个很简单的功能,触发了一个 BUG,处 ...

  6. ES6的Promise用法

    一.是什么: promise是异步编程的一种解决方案,它是一个对象,可以获取异步操作的信息,它的出现改善了异步编程,避免了地狱回调,它比传统的解决方案回调函数和事件更合理和更强大 二.promise的 ...

  7. Redis 源码解读之逐出策略

    Redis 源码解读之逐出策略 背景和问题 本文想解决的问题: redis 触发逐出的时机是怎样的? redis 逐出策略有哪些? 如何在海量的 key 中快速找到逐出评价值(idle)最高的key, ...

  8. aop中的名词解释

    aop中的名词解释 aop spring Joinpoint(连接点) 目标对象中所有可以增强的方法叫做连接点 Pointcut(切入点) 目标对象中要增强的的方法 Advice(通知/增强) 增强的 ...

  9. 病程极短(≤16周)的495例未分化关节炎患者随访2年的结局[EULAR2015_SAT0055]

    病程极短(≤16周)的495例未分化关节炎患者随访2年的结局   SAT0055 TWO-YEAR OUTCOME IN 495 PATIENTS WITH UNDIFFERENTIATED ARTH ...

  10. 基于Python的OpenGL 04 之变换

    1. 概述 本文基于Python语言,描述OpenGL的变换 前置知识可参考: 基于Python的OpenGL 03 之纹理 - 当时明月在曾照彩云归 - 博客园 (cnblogs.com) 笔者这里 ...