【python实战】用爬虫在家看街拍,2万张图片够看到明年

2021/7/23 1:06:10

本文主要是介绍【python实战】用爬虫在家看街拍,2万张图片够看到明年,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

哈喽,大家好,我是一条

写了一周leetcode刷题,不知道大家有没有进步呢?

今天写点实用的,粉丝福利!

前言

夏天到了哈,烈日炎炎,街拍党们又可以大显身手,但是户外虽美,烈日也猛,所以还是在家看的舒服。

一条爬取了街拍网2万张图片供大家在家观看,看到明年都够了吧!

分析网页

本次用到尚街拍这个网站,链接

主要包括:街拍、明星、穿搭技巧等

我们选择街拍的网址,打开F12,找打图片元素对应的html

可以看到url存放在<img>标签里,一张图片是一个<li>

解析网页

基于上面的分析,我们决定采用xpath解析,右键——Copy Xpath,粘贴如下

//*[@id="item-372982"]/div/div[1]/a/picture/img

因为要获得所有的<li>,我们在往上找一级

<ul class="b2_gap ">

所以按照先定位到<li>再逐一遍历的思路,代码如下:

res = requests.get(url)
        html = etree.HTML(res.text)
        li_list = html.xpath('//*[@class="b2_gap "]/li')
        for li in li_list:
            pic_url = li.xpath("./div/div[1]/a/picture/img/@src")[0]
            title = li.xpath("./div/div[1]/a/picture/img/@alt")[0]

下载图片

有了url我们只需再发送一次请求,保存二进制文件就可以下载图片

pic = requests.get(pic_url).content
            with open('./meinv/' + title + '.jpg', 'wb') as f:
                f.write(pic)

爬虫翻页

如上,一页的图片已经爬取成功,可我们还想要更多页,怎么办呢?

观察url

https://www.jiepai.net/jiepai/page/2

最后的page/2好像和页面有关,我们把2改成3试一下

果然,成功了,那翻页就很好解决了

url = 'https://www.jiepai.net/jiepai/page/2'
    for i in range(0, 1):
        res = requests.get(url.format(i))

多线程

因为一共要爬取街拍,穿搭,美女三部分内容,共24*(69+96+606)=18504张图片,单线程实在是耗费时间,所以为每一个方法开一个线程,加快速度

import threading
if __name__ == '__main__':
    th1 = threading.Thread(target=get_jiepai())
    th2 = threading.Thread(target=get_meinv())
    th3 = threading.Thread(target=get_mingxingchuanyi())

    th1.start()
    th2.start()
    th3.start()

成果展示

需要源码和下载好的2万张图片的小伙伴

评论区评论【街拍】获取,感谢支持


我是一条,一个在互联网摸爬滚打的程序员。

道阻且长,行则将至。大家的 【点赞,收藏,关注】 就是一条创作的最大动力,我们下期见!

注:关于本篇博客有任何问题和建议,欢迎大家留言!



这篇关于【python实战】用爬虫在家看街拍,2万张图片够看到明年的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程