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

初次爬小说,我还是比较担心的,因为不知道应该用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. 【题解】 CF718C Sasha and Array
  2. 三角形css_使用css绘制三角形
  3. 视频:参加ZDNet《小崔说事》谈知识管理
  4. cad计算总长度插件_超实用的CAD插件大合集,视频教程手把手教学,工作效率翻倍...
  5. duino例程 stm32_stm32duino
  6. powerdesigner错误提示实体属性名称唯一性_SolidWorks用保存实体创建新零件与装配体...
  7. Blake2b算法 php,Blake2b算法是什么?Blake2b算法币种盘点
  8. 思科Cisco Nexus 9508交换机的QSFP+端口高速线缆DAC布线方案
  9. linux 修改文件类型 查看系统类型 改hosts文件
  10. html5制作新年祝福,2018新年祝福贺卡制作
  11. linux下查看vnc端口_Linux的VNCServer的默认端口是多少?
  12. scipy中使用linalg.inv函数计算矩阵的逆矩阵
  13. 如何批量修改文件名?教你一招,轻松解决
  14. 2011020敏捷培训
  15. 母婴广告投放在哪里合适?如何在抖音投放广告抢占市场?
  16. 【广度优先搜索】leetcode 994. 腐烂的橘子
  17. jenkins2.3031 出现“Error 403 No valid crumb was included in the request ”的解决方案
  18. 镶嵌数据集工具小结(八)色彩平衡与接缝线 Ⅱ
  19. 大数据分析 | 用 Python 做文本词频分析
  20. 我的通宵史-网上斗地主谋生

热门文章

  1. 已解决sqlalchemy.exc.ProgrammingError: (pymssql._pymssql.ProgrammingError) (102, b“Incorrect syntax nea
  2. checkstyle + gradle + git pre-commit 实现代码提交前对代码规范的检查
  3. 变色玫瑰html,玫瑰花变色实验
  4. 函数<小罗爱c语言>
  5. 哪些路由器支持打印服务器,小米路由器什么时间支持打印机服务器
  6. 【UNI APP】globalData全局变量
  7. MicroPython-On-ESP8266——有请蜂鸣器带来歌曲“小星星”
  8. 第五卷《鏖战雁门(下)》第41章《良夜》
  9. CSS综合案例-品优购电商04
  10. python正则表达式试题_正则表达式练习题