python 爬取诗词名句网(包含页面跳转)
代码,之前一直乱码,经过多番尝试
使用了.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 爬取诗词名句网(包含页面跳转)相关推荐
- 爬取诗词名句网的三国演义小说
爬取诗词名句网的三国演义小说 诗词名句网,有很多的诗词和一些课本上古诗的,是一个很好的文学网站,但是我们就来爬取诗词名句网的三国演义小说 第一步我们还是导入要导入的库: import requests ...
- 每日爬虫练习:bs4库爬取诗词名句网的四大名著
一.前言 2020-04-2日爬虫练习 爬取网站:诗词名句网的四大名著 需求:将四大名著的每一个章节存储到本地 技术路线: 1.requests 2.BeautifulSoup 3.os 二.代码解释 ...
- 使用Xpath+多进程爬取诗词名句网的史书典籍类所有文章。update~
上次写了爬取这个网站的程序,有一些地方不完善,而且爬取速度较慢,今天完善一下并开启多进程爬取,速度就像坐火箭.. # 需要的库 from lxml import etree import reques ...
- 爬虫学习(12):爬取诗词名句网并且下载保存
用BeautifulSoup爬取并且下载.仅仅用作学习用途哈,不然又侵权了. 效果: 由于我是正在自学爬虫,不是很能找到非常优化的办法,是一名计算机大二学生,代码可能不是很好,还请大神指点,这是我扣扣 ...
- python爬虫 爬取诗词名句网
使用requests库,xpath库 import requests import time from lxml import etree# 去请求页面的函数 def request_Header(u ...
- 用python输出所有的玫瑰花数_用Python爬取WordPress官网所有插件
转自丘壑博客,转载注明出处 前言 只要是用WordPress的人或多或少都会装几个插件,可以用来丰富扩展WordPress的各种功能.围绕WordPress平台的插件和主题已经建立了一个独特的经济生态 ...
- python爬取链家网的房屋数据
python爬取链家网的房屋数据 爬取内容 爬取源网站 爬取内容 爬取思路 爬取的数据 代码 获取房屋url 获取房屋具体信息 爬取内容 爬取源网站 北京二手房 https://bj.lianjia. ...
- python爬取去哪儿网酒店信息
python爬取去哪儿网酒店信息 利用selenium+python爬取去哪儿网酒店信息,获取酒店名称.酒店地址.第一条评论.评论数.最低价格等信息,写入excel表. 1.观察网页结构 浏览器地址栏 ...
- 使用Python爬取“最好大学网”软科中国最好大学排名2019并做可视化分析
使用Python爬取"最好大学网"软科中国最好大学排名2019并做可视化分析 简介 开发环境 爬取数据 1.获取网站页面 2.解析网页内容 3.存储数据 可视化分析 基本设置 显示 ...
最新文章
- C++中标准模板库std::vector的实现
- 谢文睿:西瓜书 + 南瓜书 吃瓜系列 9. 集成学习(上)
- IDEA 小技巧之书签与收藏
- 第二阶段---python基础
- 手机控制树莓派linux,怎样用PC或手机远程控制树莓派
- gettype拿不到值_被玩家强行改位置的5个英雄,他上单无解,杀吕布灭铠爹,这都拿去辅助?...
- 求旋转数组中的最小值
- file 选择的文件胖多有多大_如何删除 macOS 压缩包中的隐藏文件?
- 在Linux上使用的10种云备份方案
- 【夯实PHP基础】PHP发送邮件(PHPMailer)
- XenServer 6.5实战系列之六:Creating a Storage Repository (CIFS)
- 【代码优化】注解优先命名模式
- c语言表达式优先级最高的是,C语言运算符优先级表
- CentOS 7.x 内核kernel版本升级实操
- ECharts 饼图颜色设置教程 - 4 种方式设置饼图颜色
- Quorum工作原理
- threejs使用tweenjs实现点击标签过渡到相应视角
- arm linux关机命令,嵌入式Linux的关闭命令是什么?
- FlutterWeb性能优化探索与实践
- 移动端H5实现手动选择地图点的一种解决方案
热门文章
- plain framework 1 pak插件说明(资源压缩加密)
- 技术工程化助力随手记V12改版
- 基于python实现读取区块信息
- ExecuteReader 要求已打开且可用的 Connection。连接的当前状态为打开。
- linux开发工程师工作知识,Linux开发工程师需要掌握的技能有哪些
- 万无一失的自杀方法_如何创建万无一失的Shell脚本
- 阿里巴巴菜鸟java面试_阿里巴巴菜鸟包裹java面试总结
- 如何用迅雷下载python_使用python在迅雷中添加任务
- 【数据结构与算法08】234树
- 英语知识点整理day12-谚语学习(D字母开头)