用request和BeautifulSoup抓取盗贴的小说(二)

本文详细探讨了如何通过网络爬虫技术从特定网站下载小说内容,并使用BeautifulSoup库进行网页解析,实现了对小说目录的遍历、章节路径提取、章节名获取及判断是否为VIP章节的功能。

最近老婆大人要看小说,要我从网上帮她下载。

有事问度娘, baidu 《帝凰:邪帝的顽妃》 原来是 红袖添香 的文章。

打开网页,开始观察

1. 没有下载功能。

2.有部分章节是VIP的,无法看到。

好吧,开始盗贴吧,不过只能拿到 公共 的部分。

打开 目录 的网页(http://novel.hongxiu.com/a/475740/list.shtml), 用firebug看每个章节的所在的属性。

好的,我得到了,目录的 csspath (html body div.wrapper_list div#htmlList.insert_list dl dd ul li )

这里要说一下,BeautifulSoup 的4.0支持 xpath csspath 等多个查询方式。

用下面的代码,就可以遍历 文章的所有目录:

tag_li = soup.select( "html body div.wrapper_list div#htmlList dl dd ul li")
tag_li 就是 所有目录的 list


开始找 章节的路径、章节名、是不是VIP

for li in tag_li:  
            tag_a = li.strong.a.extract()  no_txt = li.strong.text no = re.sub( u'\n+',u'', no_txt )
            href = tag_a['href']
            title = tag_a.string
            isvip = 'VIP' if li.find('font', class_='isvip') else 'PUB'


tag_a = li.strong.a.extract()
这行,是把 <a></a> 从这样的html <li><strong><a></a></strong></li>  中提取出来。

原来的html 变成了 <li><strong></strong></li>


no_txt = li.strong.text
no = re.sub( u'\n+',u'', no_txt ) 

章节序号


href = tag_a['href']
title = tag_a.string
章节的url,  和 章节名


isvip = 'VIP' if li.find('font', class_='isvip') else 'PUB'
是不是vip章节,如果是,就不抓取了,跳过。

转载于:https://my.oschina.net/wmjie/blog/104948

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值