python实例二:高清小姐姐图片

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

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

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

import requests
import re
import threading

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


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('lazysrc="(.*?)" lazysrc2x=')
    title = re.compile('target="_blank" class="imgw" title="(.*?)">')
    """
    知识点:
    re.findall()在字符串中找到正则表达式所匹配的所有子串,并返回一个列表
    """
    img_url_d = img_url.findall(html)
    title_pattern = title.findall(html)

    for url,title in zip(img_url_d,title_pattern):
        url = url[0:url.rindex("220.320.jpg") -1]
        seva_img(url,title)


def seva_img(url,title):
    path = '/Users/Bob/PycharmProjects/ModeTest/meinv'
    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,30+1):
        t = threading.Thread(target=get_img, args=(f"https://www.3gbizhi.com/meinv/index_{index}.html",))
        t.start()
    while threading.active_count() != 1:
        pass
    else:
        print("所有进程已结束!!!")

    #普通的办法进行便利
    # url='https://www.3gbizhi.com/sjbz/index_{}.html'
    # for i in range(1,118+1):
    #     # print(i)
    #     get_imga(f'https://www.3gbizhi.com/sjbz/index_{i}.html')

效果图
在这里插入图片描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

菜里亚批

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

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

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

打赏作者

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

抵扣说明:

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

余额充值