python爬取4k小姐姐图片 人生苦短 我用python

10 篇文章 131 订阅

老样子 先来几张图
在这里插入图片描述
在这里插入图片描述

前言

今天打开电脑看见自己用了好久的壁纸是时候换一个了,但苦于无良心的壁纸网站,然后我打开了知乎,搜素壁纸推荐,让我发现了这个宝藏壁纸网站wallhaven

在这里插入图片描述
这主页。。。。要是不爬一下感觉都对不起这主页,开整。

分析

这个壁纸主页和我之前爬取的壁纸网站有一些不同的地方,主要的不同就是这个壁纸网站图片并不是一页一页显示的,而是动态添加的,即当划到浏览器底部时,才会添加下面的图片。

这个问题看起来好像有一点棘手,但其实并不然,这时候打开咱们的google浏览器(不得不说 google浏览器 yyds),点击F12,向下滑动的时候发现这里突然发出一个xhr请求
在这里插入图片描述
点进去一看,这就是自动拼接的内容呀,问题不就解决了吗
只需要修改该请求的page参数,就可以实现访问所有页的图片,我已经感受到了4k壁纸在向我招手,开撸代码
在这里插入图片描述

代码

拼接每一页图片的路径

这一步就是生成咱们要访问每一页图片的html的url,我看了一下,toplist里只有140页,所以只爬这140页的图片就可以了

    for j in range(1, 141):
        url = "https://wallhaven.cc/toplist?page="+str(j);

对每一页图片进行页面的解析,拿到图片详情页的url

这里就是对页面进行解析,目的是为了拿到图片详情页的url

def getHtmlUrl(url):
    htmlurls = []
    html = spider2.askURL(url)
    bs = BeautifulSoup(html, "html.parser");
    for item in bs.find_all('a', target="_blank"):
        item = str(item)
        htmlurl = re.findall(htmllink, item)
        if len(htmlurl) != 0:
            htmlurls.append(htmlurl[0])
    return htmlurls

拿到图片的url和图片名

def getPicUrl(url):
    html = spider2.askURL(url)
    p = url.split('/')
    bs = BeautifulSoup(html, "html.parser");
    for item in bs.find_all('img', id="wallpaper"):
        item = str(item)
        picurl = re.findall(photolink, item)
        return picurl[0], p[len(p) - 1]

这些步骤之后就可以开始图片的下载了。
当我信心满满的开始下载时,你看这速度。。。。。
在这里插入图片描述
真是让人感到无语呀,,,
在这里插入图片描述
既然你下载速度比较慢,那我多开几个线程不过分吧(俺觉得不过分)

线程池 多线程下载

#初始化一个线程池  设置最大线程数为20
 pool = ThreadPoolExecutor(max_workers=20)
# 生成一个文件下载的线程
 pool.submit(FileDownload.downloadFile, 'E://file//pic//' + name + '.jpg', purl)

果然速度瞬间拉满,兄弟们可以把最大线程数再开大一点。

总结

这一次爬到的壁纸确实要比上一次好了太多了,4k的画质属实是杠杠的,这次没有写的特别详细,很多都是一带而过,如果爬虫基础不是特别好的兄弟们可以先去看看我之前的博客Python爬取美女图片 爬虫基础。需要完整源代码的私信我就好。

最后,卑微博主在线求一键三连!!!
在这里插入图片描述

成果展示

一部分我觉得很棒的壁纸,大家一起康康
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 21
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小王不头秃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值