pyhton爬诛仙小说
好吧,第一次写博客时由于出了一点点小问题,所以还得重新写。。。
初次爬小说,我还是比较担心的,因为不知道应该用python的哪个知识点,在网上查询之后,发现还是得使用bs,心里窃喜,接着,要决定爬哪个小说。网上有新浪小说,有网络小说,再三考虑之后,决定爬诛仙小说。(因为符合我对小说的定义以及有现成的网址),好啦,言归正传,工作开始。
1.首先要有一个明确的思路,最终结果应该是一个文件包含小说的所有章节、题目及小说内容,所以,代码中应有事先定义的章节题目空列表,链接空列表。
2.写出格式化代码后,打开小说页面源代码,发现章节代码都很有规律,如下:
所以,正则便可以很容易写出:
contents = soup.find("div", id="list").find_all("a")
3.在匹配章节题目时遇到难题,不知道怎么书写第几章的正则,后来通过查资料,发现一样特别神奇的武器——汉字转化unicode编码工具。
http://www.bangnishouji.com/tools/chtounicode.html 这是链接,可以尝试--**--
所以,本代码需要的正则便是
re.findall(re.compile(ur'\u7b2c.*\u7ae0'),item.text)
4.接下来就是匹配正文
content = soup.find("div", id="content")
然后,将不必要的东西通过re.sub删除。删除时需将内容复制粘贴即可,即使被删除的内容很多,如:
cont = re.sub(r'<script src="/js/chaptererror.js" type="text/javascript"></script>', '', cont)
5.综上,完整代码如下:
# -*- coding:utf-8 -*-from bs4 import BeautifulSoup
import urllib2
import reurl = 'http://www.biquge.tw/26_26491/'
user_agent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0"
headers = {'User-Agent': user_agent}
response = urllib2.Request(url, headers=headers)
html = urllib2.urlopen(response).read()
soup = BeautifulSoup(html, 'html.parser', from_encoding='utf-8')
contents = soup.find("div", id="list").find_all("a")
#print contentsfor item in contents:title = []href = []if re.findall(re.compile(ur'\u7b2c.*\u7ae0'),item.text):#print item.texttitle.append(item.text)href.append(item['href'])for i in range(len(href)):try:url2 = 'http://www.biquge.tw' + href[i]user_agent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0"headers = {'User-Agent': user_agent}response = urllib2.Request(url2, headers=headers)html2 = urllib2.urlopen(response).read()soup = BeautifulSoup(html2, 'html.parser', from_encoding='utf-8')content = soup.find("div", id="content")cont = str(content)cont = re.sub(r'<script src="/js/chaptererror.js" type="text/javascript"></script>', '', cont)cont = re.sub(r'</div>', '', cont)cont = re.sub(r'<div id="content">', '', cont)cont = re.sub(r'<br/>', '\n', cont)f = open('ZX.txt','a')f.write(title[i].encode('utf-8')+'\n'+cont+'\n')f.close()print "OK"except:print "NO"
pyhton爬诛仙小说相关推荐
- 爬取小说2--协程间通信Python
通过Python进行协程间通信,大大加速爬取效率. 前言 是这样的,在之前的爬虫版本中,我们通过并发技术(python协程只是并发).实现快速爬取小说的效果. 将速度提高为原来的几百倍了.但是却由于之 ...
- 多进程爬虫(爬取小说)Python实现
区别于之前用多协程写的爬虫版本 多协程爬取小说 这个版本,开销会比较大.效率上也不一定有之前的高 不过,总体上还是很不错的~ 问题分析 这个版本,还有之前的版本都一样,还存在问题,就是在下载好了文件之 ...
- python多线程爬虫数据顺序_多线程爬取小说时如何保证章节的顺序
前言 爬取小说时,以每一个章节为一个线程进行爬取,如果不加以控制的话,保存的时候各个章节之间的顺序会乱掉. 当然,这里说的是一本小说保存为单个txt文件,如果以每个章节为一个txt文件,自然不会存在这 ...
- 还不知道要看什么小说嘛?爬取小说网站前10页的小说数据分析一波
爬取小说数据 效果 网页分析 网页网址分析 书内容位置分析 不同书内容位置分析 将内容存到Excel 完整代码 效果 网页分析 网页网址分析 对比我们可以发现,不同的网页只有后边的数字不一样. 得到前 ...
- 看小说有广告?不可能的,分分钟教你爬取小说
爬取小说 效果 分析网页 正则表达式分析 请求头分析 完整代码 可能出现的错误 效果 分析网页 我们可以看到 小说的章节的标题与对应的链接是在<dd></dd>这个节点中的. ...
- python按章节分割txt_python爬虫,爬取小说
功能:爬取并下载小说中非vip部分的内容. 对于一个有八九年书龄的老书虫而言,遇到想看的小说,却没有找到下载的窗口,每次阅读都需要网上搜索,特别是网不好的地方,是十分不方便的.因此利用python写了 ...
- python爬取小说代码bs4和_使用python爬虫,requests(夹带BeautifulSoup的使用)爬取网络小说...
由于本人也是初学者,算是小白一枚,这里跟大家分享一下爬取网站上的小说的过程. 第一步我们需要导入我们需要的模块,比如requests,BeautifulSoup,还有正则模块re. 代码如下:impo ...
- python 爬虫爬取小说信息
1.进入小说主页(以下示例是我在网上随便找的一片小说),获取该小说的名称.作者以及相关描述信息 2.获取该小说的所有章节列表信息(最重要的是每个章节的链接地址href) 3.根据每个章节的地址信息下载 ...
- java 爬虫_Java原生代码实现爬虫(爬取小说)
Java也能做爬虫. 现在提到爬虫人第一个想到的就是python,其实使用Java编写爬虫也是很好的选择,Java成熟的爬虫框架很多,下面给大家展示一个使用Java基础语言编写的爬取小说的案例: 实现 ...
最新文章
- 【题解】 CF718C Sasha and Array
- 三角形css_使用css绘制三角形
- 视频:参加ZDNet《小崔说事》谈知识管理
- cad计算总长度插件_超实用的CAD插件大合集,视频教程手把手教学,工作效率翻倍...
- duino例程 stm32_stm32duino
- powerdesigner错误提示实体属性名称唯一性_SolidWorks用保存实体创建新零件与装配体...
- Blake2b算法 php,Blake2b算法是什么?Blake2b算法币种盘点
- 思科Cisco Nexus 9508交换机的QSFP+端口高速线缆DAC布线方案
- linux 修改文件类型 查看系统类型 改hosts文件
- html5制作新年祝福,2018新年祝福贺卡制作
- linux下查看vnc端口_Linux的VNCServer的默认端口是多少?
- scipy中使用linalg.inv函数计算矩阵的逆矩阵
- 如何批量修改文件名?教你一招,轻松解决
- 2011020敏捷培训
- 母婴广告投放在哪里合适?如何在抖音投放广告抢占市场?
- 【广度优先搜索】leetcode 994. 腐烂的橘子
- jenkins2.3031 出现“Error 403 No valid crumb was included in the request ”的解决方案
- 镶嵌数据集工具小结(八)色彩平衡与接缝线 Ⅱ
- 大数据分析 | 用 Python 做文本词频分析
- 我的通宵史-网上斗地主谋生
热门文章
- 已解决sqlalchemy.exc.ProgrammingError: (pymssql._pymssql.ProgrammingError) (102, b“Incorrect syntax nea
- checkstyle + gradle + git pre-commit 实现代码提交前对代码规范的检查
- 变色玫瑰html,玫瑰花变色实验
- 函数<小罗爱c语言>
- 哪些路由器支持打印服务器,小米路由器什么时间支持打印机服务器
- 【UNI APP】globalData全局变量
- MicroPython-On-ESP8266——有请蜂鸣器带来歌曲“小星星”
- 第五卷《鏖战雁门(下)》第41章《良夜》
- CSS综合案例-品优购电商04
- python正则表达式试题_正则表达式练习题