好吧,第一次写博客时由于出了一点点小问题,所以还得重新写。。。

初次爬小说,我还是比较担心的,因为不知道应该用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爬诛仙小说相关推荐

  1. 爬取小说2--协程间通信Python

    通过Python进行协程间通信,大大加速爬取效率. 前言 是这样的,在之前的爬虫版本中,我们通过并发技术(python协程只是并发).实现快速爬取小说的效果. 将速度提高为原来的几百倍了.但是却由于之 ...

  2. 多进程爬虫(爬取小说)Python实现

    区别于之前用多协程写的爬虫版本 多协程爬取小说 这个版本,开销会比较大.效率上也不一定有之前的高 不过,总体上还是很不错的~ 问题分析 这个版本,还有之前的版本都一样,还存在问题,就是在下载好了文件之 ...

  3. python多线程爬虫数据顺序_多线程爬取小说时如何保证章节的顺序

    前言 爬取小说时,以每一个章节为一个线程进行爬取,如果不加以控制的话,保存的时候各个章节之间的顺序会乱掉. 当然,这里说的是一本小说保存为单个txt文件,如果以每个章节为一个txt文件,自然不会存在这 ...

  4. 还不知道要看什么小说嘛?爬取小说网站前10页的小说数据分析一波

    爬取小说数据 效果 网页分析 网页网址分析 书内容位置分析 不同书内容位置分析 将内容存到Excel 完整代码 效果 网页分析 网页网址分析 对比我们可以发现,不同的网页只有后边的数字不一样. 得到前 ...

  5. 看小说有广告?不可能的,分分钟教你爬取小说

    爬取小说 效果 分析网页 正则表达式分析 请求头分析 完整代码 可能出现的错误 效果 分析网页 我们可以看到 小说的章节的标题与对应的链接是在<dd></dd>这个节点中的. ...

  6. python按章节分割txt_python爬虫,爬取小说

    功能:爬取并下载小说中非vip部分的内容. 对于一个有八九年书龄的老书虫而言,遇到想看的小说,却没有找到下载的窗口,每次阅读都需要网上搜索,特别是网不好的地方,是十分不方便的.因此利用python写了 ...

  7. python爬取小说代码bs4和_使用python爬虫,requests(夹带BeautifulSoup的使用)爬取网络小说...

    由于本人也是初学者,算是小白一枚,这里跟大家分享一下爬取网站上的小说的过程. 第一步我们需要导入我们需要的模块,比如requests,BeautifulSoup,还有正则模块re. 代码如下:impo ...

  8. python 爬虫爬取小说信息

    1.进入小说主页(以下示例是我在网上随便找的一片小说),获取该小说的名称.作者以及相关描述信息 2.获取该小说的所有章节列表信息(最重要的是每个章节的链接地址href) 3.根据每个章节的地址信息下载 ...

  9. java 爬虫_Java原生代码实现爬虫(爬取小说)

    Java也能做爬虫. 现在提到爬虫人第一个想到的就是python,其实使用Java编写爬虫也是很好的选择,Java成熟的爬虫框架很多,下面给大家展示一个使用Java基础语言编写的爬取小说的案例: 实现 ...

最新文章

  1. Python的dict字典结构操作方法学习笔记
  2. CSP认证 201403-1相反数[C++题解]:哈希表
  3. python 深拷贝_Python之类的浅拷贝与深拷贝
  4. Android编译系统分析四:实战-新增一个产品
  5. 国际货运快递操作流程
  6. 美味果冻(牛客练习赛53B)
  7. 接收用户的输入 Scanner类
  8. 借助 Pod 删除事件的传播实现 Pod 摘流
  9. 2014年自动化的个人感想
  10. jieba 结巴分词详解
  11. WPF MVVM 框架
  12. SSL 1384 炮兵阵地
  13. 一周信创舆情观察(9.27~10.10)
  14. tomcat 8.5.31启动报错:org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLD
  15. 手机上好用的APP推荐
  16. vue中后台管理登录后的token管理
  17. 关于4次挥手时等待2MSL的问题
  18. 16.04编译android 7.0,[原创]使用ubuntu 16.04编译android-6.0.0_r1
  19. Windows远程桌面实现之十 - 把xdisp_virt项目移植到iOS,macOS,linux平台(一)
  20. 调侃计算机专业的句子,调侃生活的幽默句子

热门文章

  1. iOS如何处理zip文件,解压或者压缩?
  2. nuxt服务端渲染技术
  3. QT之model-delegat-model---QAbstractListModel QAbstractTableModel 与 QItemDelegate关系
  4. PostgreSQL导出表结构|表数据
  5. mysqldump导出所有数据库数据
  6. ol,li,ul列表
  7. 中国的教育缺少什么?
  8. KMP算法及next数组(最大公共前后缀)求解
  9. python 图像识别游戏_基于Python的浏览器图像识别
  10. 计算机毕业设计 SSM校园拼车系统 拼车出行管理系统 滴滴打车管理系统Java Vue MySQL数据库 远程调试 代码讲解