代码,之前一直乱码,经过多番尝试
使用了.encode(‘ISO-8859-1’).decode(‘utf-8’)这个方法

from bs4 import BeautifulSoup
import requestsif __name__ == '__main__':url='https://m.shicimingju.com/book/sanguoyanyi.html'headers={'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Mobile Safari/537.36'}page_text=requests.get(url=url,headers=headers)#page_text.encoding = 'utf-8'soup=BeautifulSoup(page_text.text.encode('ISO-8859-1').decode('utf-8'),'lxml')li=soup.select('.book-mulu > ul > li')f=open('sanguo.txt','w',encoding='utf-8')for list in li:title=list.a.string#t=title.encode('utf-8').decode('gbk')href='https://m.shicimingju.com'+list.a['href']detail_text=requests.get(href,headers=headers)#detail_text.encoding='utf-8'content=BeautifulSoup(detail_text.text.encode('ISO-8859-1').decode('utf-8'),'lxml')con=content.find('div',class_='card')p=con.text#p=p.encode('utf-8').decode('gbk')f.write(title+':'+p+'\n')print(title,'爬取成功')

图片


但是这个爬出来的txt含有NSBP

根据此方法:
\xa0 是不间断空白符
str.replace(u’\xa0’, u’ ‘)

\u3000 是全角的空白符
str.replace(u’\u3000’,u’ ‘)

title.strip(‘\r\n’).replace(u’\u3000’, u’ ‘).replace(u’\xa0’, u’ ‘)
content.strip(“”).strip(‘\r\n’).replace(u’\u3000’, u’ ‘).replace(u’\xa0’, u’ ‘)

进行修改:


这个txt文件就没有NSBP了,而且格式也规范许多。
最终代码:

from bs4 import BeautifulSoup
import requestsif __name__ == '__main__':url='https://m.shicimingju.com/book/sanguoyanyi.html'headers={'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Mobile Safari/537.36'}page_text=requests.get(url=url,headers=headers)#page_text.encoding = 'utf-8'soup=BeautifulSoup(page_text.text.encode('ISO-8859-1').decode('utf-8'),'lxml')li=soup.select('.book-mulu > ul > li')f=open('sanguo.txt','w',encoding='utf-8')for list in li:title=list.a.stringt=title.strip('\r\n').replace(u'\u3000', u'').replace(u'\xa0', u'')href='https://m.shicimingju.com'+list.a['href']detail_text=requests.get(href,headers=headers)#detail_text.encoding='utf-8'content=BeautifulSoup(detail_text.text.encode('ISO-8859-1').decode('utf-8'),'lxml')con=content.find('div',class_='chapter_content')p=con.textp=p.strip('\r\n').replace(u'\u3000', u'').replace(u'\xa0', u'')f.write(t+':'+p+'\n')print(t,'爬取成功')

之前错误的代码示范

from bs4 import BeautifulSoup
import requestsif __name__ == '__main__':url='https://m.shicimingju.com/book/sanguoyanyi.html'headers={'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Mobile Safari/537.36'}page_text=requests.get(url=url,headers=headers).textsoup=BeautifulSoup(page_text,'lxml')li=soup.select('.book-mulu > ul > li')f=open('sanguo.txt','w',encoding='utf-8')for list in li:title=list.a.stringt=title.encode('utf-8').decode('gbk')href='https://m.shicimingju.com'+list.a['href']detail_text=requests.get(href,headers=headers).text#detail_text.encoding='utf-8'content=BeautifulSoup(detail_text,'lxml')con=content.find('div',class_='card')p=con.textp=p.encode('utf-8').decode('gbk')f.write(t+':'+p+'\n')print(t,'爬取成功')

图片,虽然是中文但是内容完全错误,不知道爬的啥。

python 爬取诗词名句网(包含页面跳转)相关推荐

  1. 爬取诗词名句网的三国演义小说

    爬取诗词名句网的三国演义小说 诗词名句网,有很多的诗词和一些课本上古诗的,是一个很好的文学网站,但是我们就来爬取诗词名句网的三国演义小说 第一步我们还是导入要导入的库: import requests ...

  2. 每日爬虫练习:bs4库爬取诗词名句网的四大名著

    一.前言 2020-04-2日爬虫练习 爬取网站:诗词名句网的四大名著 需求:将四大名著的每一个章节存储到本地 技术路线: 1.requests 2.BeautifulSoup 3.os 二.代码解释 ...

  3. 使用Xpath+多进程爬取诗词名句网的史书典籍类所有文章。update~

    上次写了爬取这个网站的程序,有一些地方不完善,而且爬取速度较慢,今天完善一下并开启多进程爬取,速度就像坐火箭.. # 需要的库 from lxml import etree import reques ...

  4. 爬虫学习(12):爬取诗词名句网并且下载保存

    用BeautifulSoup爬取并且下载.仅仅用作学习用途哈,不然又侵权了. 效果: 由于我是正在自学爬虫,不是很能找到非常优化的办法,是一名计算机大二学生,代码可能不是很好,还请大神指点,这是我扣扣 ...

  5. python爬虫 爬取诗词名句网

    使用requests库,xpath库 import requests import time from lxml import etree# 去请求页面的函数 def request_Header(u ...

  6. 用python输出所有的玫瑰花数_用Python爬取WordPress官网所有插件

    转自丘壑博客,转载注明出处 前言 只要是用WordPress的人或多或少都会装几个插件,可以用来丰富扩展WordPress的各种功能.围绕WordPress平台的插件和主题已经建立了一个独特的经济生态 ...

  7. python爬取链家网的房屋数据

    python爬取链家网的房屋数据 爬取内容 爬取源网站 爬取内容 爬取思路 爬取的数据 代码 获取房屋url 获取房屋具体信息 爬取内容 爬取源网站 北京二手房 https://bj.lianjia. ...

  8. python爬取去哪儿网酒店信息

    python爬取去哪儿网酒店信息 利用selenium+python爬取去哪儿网酒店信息,获取酒店名称.酒店地址.第一条评论.评论数.最低价格等信息,写入excel表. 1.观察网页结构 浏览器地址栏 ...

  9. 使用Python爬取“最好大学网”软科中国最好大学排名2019并做可视化分析

    使用Python爬取"最好大学网"软科中国最好大学排名2019并做可视化分析 简介 开发环境 爬取数据 1.获取网站页面 2.解析网页内容 3.存储数据 可视化分析 基本设置 显示 ...

最新文章

  1. C++中标准模板库std::vector的实现
  2. 谢文睿:西瓜书 + 南瓜书 吃瓜系列 9. 集成学习(上)
  3. IDEA 小技巧之书签与收藏
  4. 第二阶段---python基础
  5. 手机控制树莓派linux,怎样用PC或手机远程控制树莓派
  6. gettype拿不到值_被玩家强行改位置的5个英雄,他上单无解,杀吕布灭铠爹,这都拿去辅助?...
  7. 求旋转数组中的最小值
  8. file 选择的文件胖多有多大_如何删除 macOS 压缩包中的隐藏文件?
  9. 在Linux上使用的10种云备份方案
  10. 【夯实PHP基础】PHP发送邮件(PHPMailer)
  11. XenServer 6.5实战系列之六:Creating a Storage Repository (CIFS)
  12. 【代码优化】注解优先命名模式
  13. c语言表达式优先级最高的是,C语言运算符优先级表
  14. CentOS 7.x 内核kernel版本升级实操
  15. ECharts 饼图颜色设置教程 - 4 种方式设置饼图颜色
  16. Quorum工作原理
  17. threejs使用tweenjs实现点击标签过渡到相应视角
  18. arm linux关机命令,嵌入式Linux的关闭命令是什么?
  19. FlutterWeb性能优化探索与实践
  20. 移动端H5实现手动选择地图点的一种解决方案

热门文章

  1. plain framework 1 pak插件说明(资源压缩加密)
  2. 技术工程化助力随手记V12改版
  3. 基于python实现读取区块信息
  4. ExecuteReader 要求已打开且可用的 Connection。连接的当前状态为打开。
  5. linux开发工程师工作知识,Linux开发工程师需要掌握的技能有哪些
  6. 万无一失的自杀方法_如何创建万无一失的Shell脚本
  7. 阿里巴巴菜鸟java面试_阿里巴巴菜鸟包裹java面试总结
  8. 如何用迅雷下载python_使用python在迅雷中添加任务
  9. 【数据结构与算法08】234树
  10. 英语知识点整理day12-谚语学习(D字母开头)