ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-07-23 00:02:03  阅读:163  来源: 互联网

标签:get python 爬虫 li url 看街 div jiepai 图片


哈喽,大家好,我是一条

写了一周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万张图片的小伙伴

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


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

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

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

标签:get,python,爬虫,li,url,看街,div,jiepai,图片
来源: https://blog.csdn.net/skylibiao/article/details/119011446

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有