python实例三:爬取高清手机壁纸

直接上代码,下来有时间单独发一篇进行讲解,文章底部有效果图

仅用学习,如有侵权立即删除
在这里插入图片描述

有两个地方需要改一下
1、headers 改成自己浏览器的
2、path 改成自己本地任意路径

import requests
import re
import threading

headers = {
    "User-Agent": "xxxxxxxxxx"
}

def get_img(url):
    res_img = requests.get(url=url,headers=headers)
    res_img.encoding = 'utf-8'
    html = res_img.text
    img_url = re.compile('<img lazysrc="(.*?)" lazysrc2x=')
    title = re.compile('title="(.*?)" />')
    last_page = re.compile('..<a href="(.*?)">')
    img_url_d = img_url.findall(html)
    title_pattern = title.findall(html)

    for u,t in zip(img_url_d,title_pattern):
        url = u[0:int(u.rindex("238.390.jpg")-1)]
        # print(url,t)
        seva_img(url,t)


def seva_img(url,title):
    path = '/Users/Bob/PycharmProjects/ModeTest/Mobile_wallpaper'
    try:
        print(f"{title} - {url}")

        res = requests.get(url=url,headers=headers)
        if res is not None:
            html = res.content
            with open(f"{str(path)}/{str(title)}.jpg",'wb+') as f:
                f.write(html)
    except Exception as er:
        print(url,er)


if __name__ == '__main__':
    # 最后使用多线程进行爬取,开启 5 个线程,当所有线程结束运行时,停止整体代码。
    semaphore = threading.BoundedSemaphore(5)
    for index in range(1,118+1):
        t = threading.Thread(target=get_img, args=(f"https://www.3gbizhi.com/sjbz/index_{index}.html",))
        t.start()
    while threading.active_count() != 1:
        pass
    else:
        print("所有进程执行完毕")

在这里插入图片描述
在这里插入图片描述
参考地址:https://dream.blog.csdn.net/article/details/117918309
在此感谢 梦想橡皮擦 大佬的优秀文章

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

菜里亚批

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

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

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

打赏作者

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

抵扣说明:

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

余额充值