鱼C论坛

 找回密码
 立即注册
查看: 4769|回复: 3

[作品展示] 一个爬取小说的爬虫....

[复制链接]
发表于 2015-8-12 23:43:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 fre 于 2015-8-15 08:47 编辑

编码问题已经解决.现在基本这个站的小说都可以抓取了.
这样这个爬虫还是有点用处了 我喜欢看恐怖小说 这个站的恐怖小说 还是挺多挺全的..
而且站点本身没有提供txt下载..嘿嘿...
可以完整的下载了看咯..

抓取的网址 http://www.kanunu8.com/

down_book .rar (1.23 KB, 下载次数: 29)


==================================================




  首先声明..这个爬虫只能看看..基本没法实际应用...因为只能爬去极少部分小说
:mad:  真是折腾啊...
怪自己选了个垃圾站...各种规则都是乱的..没有统一的规则..
只是刚好这个站排在我这几天看的小说的百度搜索结果第一位..才拿这个站来练练手的..
然后..看着看着..哎哟..书籍详情页,也就是有章节列表的地方..有3种格式哦..
再看着看着..哎哟...书名字那里也有2种字体哦..一种黑色一种红色....书籍详情页面 也有2种样式哦..
本身正则就不精通...偏偏还这样..

我已经懒得发现有没有其他的样式了..
有的页面 因为个别字符的原因 莫名出现不能decode之类..
我也懒得去解决了(其实是不会)..
发出来...让大神们批判下.帮我改进改进思路......顺便求助

然后 重点来了..就是遇到的坑..希望有大神能帮助下
主要有2方面,一个是编码
网页的编码声明是gb2312的  但是遇到了很多网页,没法用decode('gb2312')
有的 同一篇小说 上一个章节还可以 下一个章节就不行了 有的直接在目录页就报错了.
求问题详解 求解决办法
这个问题十分重要..要是解决了..基本就可以爬这个网站所有的小说了..求大神啊...

示例图片如下
1.png

另一个坑就是正则表达式.
刚开始的时候 我是想着逐行匹配的
  第五章美女与狼狗<br />
类似这样的如果我要匹配出单独这句中文 怎么匹配?  我这样写的
\s?(.*?)<br/>? re.DOTALL
\s代表空白字符 他就会直接从整个页面的起始位置 开始匹配到第一个<br />了 多了很多乱七八糟的代码出来..
后面我换成直接匹配<p>标签了.所以没有这个问题了.但是还是想知道 这种格式 怎么进行匹配



有2个程序 一个是 整本小说保存成一个txt文本
二个是 整本小说保存为一个文件夹,每个章节独立保存为文本(最开始就是想这样的,因为打算自己放到网页上..后来还是觉得保存为txt方便)
文件夹的版本很简陋,只能匹配我最开始研究的那本小说,后面我又添加了其他几样判断,没有加到文件夹版里面

垃圾代码附上...里面打印了很多信息..每个函数都有打印..是作为提示..也是为了出错的时候方便定位到错误位置...
如果要测试抓取效果的 抓这一本 http://www.kanunu8.com/book3/6978/
其他的不少都可能出编码错误
down_book.rar (2.4 KB, 下载次数: 9)

附上抓取效果图...
2.jpg

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-8-13 10:26:36 | 显示全部楼层
:mad: 大神们还没起床么..
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-13 17:01:53 | 显示全部楼层
帮顶。看看爬虫代码~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-14 12:51:44 | 显示全部楼层
爬虫能实现的东西还真不少!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 08:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表