使用requests爬取小说
实现:
import requests
import re
import time def get_chapter(aim_url):
'''
获取小说章节名称和对应的url地址
:param aim_url:小说目录页url
:return:章节名和url的字典
''' ret = requests.get(aim_url)
content = ret.content.decode('gbk') li = re.findall('<li><a.*</li>',content) #获取小说章节的地址 url_dic = {}
for i in li:
print(i)
chapter = re.search(r'">.*</a',i).group()[:-]
url = aim_url + re.search(r'[0-9]{7}.html',i).group()
url_dic[chapter] = url return url_dic def get_content(chapter_url):
'''
获取小说内容
:param chapter_url:章节名和url的字典
:return:
'''
requests.adapters.DEFAULT_RETRIES = for chapter,url in chapter_url.items(): try:
ret = requests.get(url).content.decode('gbk')
except requests.exceptions.ConnectionError:
print('连接太快了..等等')
time.sleep()
ret = requests.get(url).content.decode('gbk') #匹配正文
ret = ret.replace('\n','')
content = re.search(r'<div id="content" class="content">.*chapterpage',ret).group()[:] #替换正文中的html标签
content = content.replace(' ',' ')
content = content.replace('<br />', ' ')
content = content.replace(''', '') #将内容写入文件中
with open('novel.txt',mode='a',encoding='utf-8') as f:
f.write(chapter+'\n')
f.write(content)
f.write('\n\n') print(chapter) if __name__ == '__main__':
li = get_chapter('https://www.9dxs.com/2/2348/index.html')
get_content(li)
遇到的问题:
爬取一半时,抛出了requests.exceptions.ConnectionError异常
分析:
- 请求连接数太多
- 请求速度过快
解决:
- 设置默认重连数:
requests.adapters.DEFAULT_RETRIES = 5
- 捕捉异常,等待5秒后再重试
try:
ret = requests.get(url).content.decode('gbk')
except requests.exceptions.ConnectionError:
print('连接太快了..等等')
time.sleep()
ret = requests.get(url).content.decode('gbk')
使用requests爬取小说的更多相关文章
- python爬虫——爬取小说 | 探索白子画和花千骨的爱恨情仇(转载)
转载出处:药少敏 ,感谢原作者清晰的讲解思路! 下述代码是我通过自己互联网搜索和拜读完此篇文章之后写出的具有同样效果的爬虫代码: from bs4 import BeautifulSoup imp ...
- Python3爬取小说并保存到文件
问题 python课上,老师给同学们布置了一个问题,因为这节课上学的是正则表达式,所以要求利用python爬取小说网的任意小说并保存到文件. 我选的网站的URL是'https://www.biquka ...
- Python实战项目网络爬虫 之 爬取小说吧小说正文
本次实战项目适合,有一定Python语法知识的小白学员.本人也是根据一些网上的资料,自己摸索编写的内容.有不明白的童鞋,欢迎提问. 目的:爬取百度小说吧中的原创小说<猎奇师>部分小说内容 ...
- requests爬取百度音乐
使用requests爬取百度音乐,我想把当前热门歌手的音乐信息爬下来. 首先进行url分析,可以看到: 歌手网页: 薛之谦网页: 可以看到,似乎这些路劲的获取一切都很顺利,然后可以写代码: # -*- ...
- python之爬取小说
继上一篇爬取小说一念之间的第一章,这里将进一步展示如何爬取整篇小说 # -*- coding: utf- -*- import urllib.request import bs4 import re ...
- 用Python爬取小说《一念永恒》
我们首先选定从笔趣看网站爬取这本小说. 然后开始分析网页构造,这些与以前的分析过程大同小异,就不再多叙述了,只需要找到几个关键的标签和user-agent基本上就可以了. 那么下面,我们直接来看代码. ...
- Scrapy爬取小说简单逻辑
Scrapy爬取小说简单逻辑 一 准备工作 1)安装Python 2)安装PIP 3)安装scrapy 4)安装pywin32 5)安装VCForPython27.exe ........... 具体 ...
- Requests爬取网页的编码问题
Requests爬取网页的编码问题 import requests from requests import exceptions def getHtml(): try: r=requests.get ...
- python3下BeautifulSoup练习一(爬取小说)
上次写博客还是两个月以前的事,今天闲来无事,决定把以前刚接触python爬虫时的一个想法付诸行动:就是从网站上爬取小说,这样可以省下好多流量(^_^). 因为只是闲暇之余写的,还望各位看官海涵:不足之 ...
随机推荐
- Oracle GoldenGate 支持 从SAP HANA database抽取或者复制数据到SAP HANA database 吗?
Oracle GoldenGate 支持 从SAP HANA database抽取或者复制数据到SAP HANA database 吗? 来源于: Does Oracle GoldenGate Su ...
- Spring注解@RequestMapping请求路径映射问题
@RequestMapping请求路径映射,假设标注在某个controller的类级别上,则表明訪问此类路径下的方法都要加上其配置的路径.最经常使用是标注在方法上.表明哪个详细的方法来接受处理某次请求 ...
- 【cl】在代码中查找系统页面中的代码方法
页面链接http://192.168.2.51:8080/xxcb1/xxbs/action/handling!view.action?toId=402882ae4e7d1761014e877fb22 ...
- UFT(QTP)中的Object Repository
Object Repository 是对象的仓库,UFT所用到的所有界面对象元素都存储在这里,并且也存储了该对象的属性,如对象名称title,对象的位置,对象的属性(button,list....) ...
- 浅析hybrid模式下地支付宝钱包和微信
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VuY2hhbzEyNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...
- win10查看系统启动项,并且禁用
打开任务管理器,有一个叫做start up的选项卡,里面的东西就是启动项. 右键选中需要disable的,然后禁用.
- redis 学习笔记-cluster集群搭建
一.下载最新版redis 编译 目前最新版是3.0.7,下载地址:http://www.redis.io/download 编译很简单,一个make命令即可,不清楚的同学,可参考我之前的笔记: red ...
- linux系统下块设备驱动程序
顾名思义,块设备驱动程序就是支持以块的方式进行读写的设备.块设备和字符设备最大的区别在于读写数据的基本单元不同.块设备读写数据的基本单元为块,例 如磁盘通常为一个sector,而字符设备的基本单元为字 ...
- 【读书笔记】UEFI原理与编程(1)概述及开发环境的搭建
一.概述: 0.为什么会有这篇文章 说实在的,在2016初的时候,我就萌生了写一个操作系统的念头,但是这对于我一个菜鸟来说,犹如登天. 既然想了就去写,即使最后做不完,也不后悔. 抱着这样的念头,我开 ...
- 给WordPress的TinyMCE Advanced编辑器加上中文字体
为TinyMCE编辑器增加中文字体并不复杂,只需要将将如下代码加到当前主题的functions.php文件中最后一个?>的前面即可: 不要忘记保存,然后更新一遍浏览器即可 //为TinyMCE编 ...