热点推荐

查看: 112|回复: 0

python爬虫40行​代码​爬取笔趣看全部小说(文末附赠教程​分享​)

[复制链接]

54

主题

54

帖子

172

积分

注册会员

Rank: 2

积分
172
发表于 2019-5-18 09:48:43 | 显示全部楼层 |阅读模式
需求分析

”笔趣看“ 是一个盗版小说网站,这里有各大知名小说网站的小说,更新速度略慢于正版网站。但是该网站只支持在线浏览,不支持小说下载,对于想要下载下来以防断网或者网速不好时也能看的童鞋来说不太友好。因此,本次练习将爬取该网站所有小说。PS:本次练习仅为学习交流,请各位童鞋支持正版。

爬取目标

本次练习将爬取 “笔趣看” 你想要的任何小说。

准备工作

本次练习将使用 requests 库(python使用最多的库)作者 kennethreitz 今年最新力作 request_html 库。集网页抓取与解析于一体。想了解更多的可以关注我,我将准备将相关文档翻译并与现有库进行对比。

请确保电脑安装了 python3.6 和requests_html。(具体安装方法请自行百度)

爬取分析

我们先随便找一本小说的第一章内容进行分析。




第一章内容

用代码获取全部文本信息:from requests_html import HTMLSessionurl = 'res = session.get(url)content = res.html.textprint(content)

打印内容如下:



网页内容

可以看到我们很轻松就获取到所有文本信息。但是有很多信息是我们不需要的,所以我们需要更精确的定位,获取指定信息。

通过谷歌浏览器的开发者工具(按F12)可以发现小说正文全在标签下的文本信息中。因此我们可以通过res.html.find('#content')来定位(定位方法与 jQuery 选择器一致,对 jQuery 不太熟悉的朋友可以通过‘菜鸟教程’大致了解下),这里我们选择的是通过 id 定位,当然也可以通过 class 定位(res.html.find('.showtxt')),但是 html 中 id 是唯一的,class 不一定是唯一的,有时会造成定位不准。有 id 建议用 id。改进后的代码如下:from requests_html import HTMLSessionurl = 'res = session.get(url)targets = res.html.find('#content')content = targets[0].textprint(content)

打印结果为:



改进后的结果

可以看到我们获取的全是小说正文内容。下面让我们回到该小说主页。



小说主页

可以看到前面12章全是最新章节,不是我们需要的,后面的正问卷才是所有章节信息。

下面我们来分析该页面信息:



章节信息

最后,想学习Python的小伙伴们!

请关注+私信回复:“学习”就可以拿到一份我为大家准备的学习资料!


本帖子中包含更多资源

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

x
回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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