前言
嗨喽!大家好呀,这里是魔王~
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()
尾语
好了,我的这篇文章写到这里就结束啦!
有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง
喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!
网友评论