python批量采集美女图片数据~这不得看一下

2022-04-09  本文已影响0人  颜狗一只

前言

嗨喽!大家好呀,这里是魔王~

image.png

"""
目标网站:
内容:图片
"""

# 分金定穴 --- 分析网站
# 数据加载:
#    静态加载
#    动态加载 json
#  -关键字
#  -页码
import json
import urllib.parse
import requests  # 网络请求库   pip
import jsonpath  # json数据解析库

import threading

#设置最大线程锁
thread_lock = threading.BoundedSemaphore(value=20)



# 1. 通过url获取json数据


def get_page(url):
    resp = requests.get(url)
    page = resp.content.decode('utf-8')  # 防止乱码

    return page



def pages_from_duitang(kw):
    base_url = ''
    pages = []
    label = urllib.parse.quote(kw)
    for index in range(0,3600,24):  # 0 24 48 72 96
        url = base_url.format(label,index)
        page = get_page(url)
        pages.append(page)

    return pages



# 2. 获取json数据所有的图片链接

def findall_url(page):
    # 类型转换
    html = json.loads(page)
    photos = jsonpath.jsonpath(html, "$..path")

    return photos


def pic_url_from_pages(pages):
    pic_url = []

    for page in pages:
        photos = findall_url(page)
        pic_url.extend(photos)

    return  pic_url


# 3. 保存图片
def pic_download(url, n):
    r = requests.get(url)
    path = r'C:\Users\1234\Desktop\新建文件夹\%s.jpg' % n
    with open(path, 'wb') as f:
        f.write(r.content)

    # 下载完了   解锁
    thread_lock.release()



pages = pages_from_duitang('美女')
pic_url = pic_url_from_pages(pages)

n = 0
for i in pic_url:
    # pic_download(i, n)
    n += 1
    print('正在下载第{}张图片'.format(n))
    # 上锁
    thread_lock.acquire()

    t = threading.Thread(target=pic_download,args=(i,n))
    t.start()

尾语

好了,我的这篇文章写到这里就结束啦!

有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

上一篇下一篇

猜你喜欢

热点阅读