python海贼王_Python爬虫之一个海贼迷的呐喊

<10>

海贼王已经10年了,一路陪伴了我们的点点滴滴。它热血,激情,感人,欢乐,吸引了无数男女老少的紧紧跟随。

说起来还真有点小心酸,原谅博主也是个海贼迷,心中怀揣着很大的梦想,誓死也要成为海贼王的男人。

但如今梦想已经破灭了,因为博主有了女朋友...

format,png

什么?说我是假粉丝,我上去就给你一巴掌!点击返回看看本篇的封面!!

format,png

没错,别怀疑,那是博主画的。

博主库爱画画,素描,水彩,国画都学过点,当然这个是在wacom绘画板上,利用corel painter + photoshop完成的(题外话)。

最后的最后,博主会放几张之前画的作品,献丑了。

好了,收!

说说我们的正题,前面两篇爬虫学习介绍了正则和BeautifulSoup的内容,这里其实是想借着这个机会给大家分享一下正则和BeautifulSoup解析的实战例子。

目标实现比较简单,就是下载xxx网站上海贼王动漫的套图。爬取效果如下:

(截取了部分下载过程)

5110ff8bca4d2f420be4175813a65c42.png

(部分下载图片)

采取了多线程爬取,总共一千多张,都存在本地了。

功能分析

本篇目的是使用正则+BeautifulSoup,因此后面不更多赘述了。

提取系列链接

format,png

通过开发者工具看到,所有的系列都是同一级别的节点,那么我们首先应该做的是遍历所有页码,然后提取每页各个系列的链接。

接下来看看链接在哪。

format,png

小提示:红框内第一个是鼠标自动跟随,第二个是手机/PC切换,使用起来非常方便。

具体点开其中一个系列标签一看,我们要的链接正是标签下的href属性,但是你会发现有两个一模一样的href属性,链接也一样,而我们只需要一个,这就需要小处理一下了,提供两个思路:使用BeautifulSoup方法单独提炼出一个链接

两个链接都提炼出来,放进set集合中去重

这里博主用的第一种方法。

提取图片链接

c4b3036e6d949b48d19b0e119dc1d0d7.png

同样的过程,图片的链接在

标签下的子节点的src属性里,依然使用BeautifulSoup就可轻松解决。

但是这里的网页排版有个问题,就是有的系列中多组图在一页中,而有的系列每页只有一张图,需要翻页查看。

解决方法是不管有没有翻页,都直接遍历该系列下的所有页,通过返回的状态码来判断下一步动作。

好了,解析的任务的分析差不多完成了,下面看看具体代码如何实现的。

代码实现

下载系列链接:

format,png

下载图片链接:

3d1932cf3c22f6db4386d384b01c55f9.png

下载并储存图片到本地:

2048a95d78391a94d08507d35b1ba6bd.png

多线程队列任务:

format,png

注:爬取间隔可以适当再长点,减轻目标服务器的负担,也理解一下辛苦的运维工作人员。

代码比较简单,目的是在实战中掌握正则和BeautifulSoup解析方法,欢迎大家指点和讨论。

完整代码已上传到Github,请参考:https://github.com/xiaoyusmd/Onepiece_crawl_master

更多作品展示

b9eb40857b00acf78887d7e082380bd3.png

36f8f2f78da6fc6f8441ea6598cbea59.png

64e010656059ad17705aa75731dffab4.png

36fb35877b3378a4a01dd5f53871400e.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值