Python爬虫入门(基础实战)—— 爬百度贴吧小说和图片

(1).把分散的连载小说下载到本地
(2)批量下载贴吧图片
**
一. 下载小说

  1. 定义一个类
    这次用类来写。实现这个也不难,经过昨天的学习已经有一定经验了。导入库什么的就不说了。先看贴吧的url构成,如http://tieba.baidu.com/p/4723863270?see_lz=1&pn=2。其中http://tieba.baidu.com/p/4723863270为该帖的基础地址,?see_lz=1是只看楼主标志位,为1是表示“只看楼主”,pn=2代表当前帖子的页码。现在来定义一个爬取百度贴吧的SpiderBaidu,初始化,然后定义一个open_url()来返回网页内容。

Python爬虫入门(基础实战)—— 爬百度贴吧小说和图片_第1张图片2. 获取标题和总页数
我们想要知道帖子标题以及总页数,提取出来就是了!
Python爬虫入门(基础实战)—— 爬百度贴吧小说和图片_第2张图片
可以发现标题被

Python爬虫入门(基础实战)—— 爬百度贴吧小说和图片_第3张图片
接下来是总页数,仔细观察总页数其实在最上面和最下面都是有一个的,所以一会儿匹配后返回的列表会有两个元素,这两个元素是一模一样的!
Python爬虫入门(基础实战)—— 爬百度贴吧小说和图片_第4张图片
如上图,数字7被(需要提取的数字)包含。代码如下。
Python爬虫入门(基础实战)—— 爬百度贴吧小说和图片_第5张图片
我们来看一下提取出来的标题和页码。
Python爬虫入门(基础实战)—— 爬百度贴吧小说和图片_第6张图片
2. 获取正文
Python爬虫入门(基础实战)—— 爬百度贴吧小说和图片_第7张图片
正文前面有空格,依然要用\s+匹配。正文被
Python爬虫入门(基础实战)—— 爬百度贴吧小说和图片_第8张图片
即使提取出帖子正文了,也别高兴的太早。贴吧发帖不可能人人都发的纯文本,可以预想到里面会有图片(包含表情),超链接,还有设置的签名等。这些还没有被过滤掉。(不好意思忘了截图,反正打印出来的内容会含有很多又长又难看的链接)

我们再制定规则过滤掉。

Python爬虫入门(基础实战)—— 爬百度贴吧小说和图片_第9张图片
4. 下载小说到本地
默认模式为只看楼主,其他人插楼小说还咋读是不。
Python爬虫入门(基础实战)—— 爬百度贴吧小说和图片_第10张图片
最后创建一个实例就好了,试试下载吧。
Python爬虫入门(基础实战)—— 爬百度贴吧小说和图片_第11张图片
下载下来后是这个效果,还行,能读。
Python爬虫入门(基础实战)—— 爬百度贴吧小说和图片_第12张图片
二、 批量下载图片
刚才有过滤图片是不?我们反过来利用它,分分钟就搞定!
Python爬虫入门(基础实战)—— 爬百度贴吧小说和图片_第13张图片
提取图片链接即可。它被 Python爬虫入门(基础实战)—— 爬百度贴吧小说和图片_第14张图片
可以适当加入time.sleep(),防止访问频率过快导致爬虫封IP。简单的可以这么做,当然可以用代理,多线程,不过我还没接触到,以后再深入。
Python爬虫入门(基础实战)—— 爬百度贴吧小说和图片_第15张图片
居然几百张!大丰收呀,看到图片自动地就被飞速下载到本地了,还用一张张右键吗?No!挂着程序让它跑,看部电影去吧!

整理一下,全部代码如下
Python爬虫入门(基础实战)—— 爬百度贴吧小说和图片_第16张图片
Python爬虫入门(基础实战)—— 爬百度贴吧小说和图片_第17张图片
Python爬虫入门(基础实战)—— 爬百度贴吧小说和图片_第18张图片
Python爬虫入门(基础实战)—— 爬百度贴吧小说和图片_第19张图片
在这里插入图片描述

你可能感兴趣的:(python3,python编程,python)