5 精币
# 表情采集
import requests # 远程请求模块
import json # json 解析模块
import time # 时间模块
import threadpool # 线程池模块
import os # 文件操作模块
import re #正则模块
# 采集配置设置
page = 1 # 采集多少页
threaNumber = 10 # 启用的线程数量
Target_link = 'https://www.doutula.com/photo/list/' # 目标地址
path_photo = './face_img' # 表情包存放文件夹
# 检查目标文件夹是否存在
if not os.path.exists(path_photo):
os.makedirs(path_photo) # 自动创建
# 获取某个路径的后缀名
def file_extension(path):
return os.path.splitext(path)[1]
# 获取斗图列表
def face_list(page=1):
User_Agent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 wechatdevtools/1.02.1811270 MicroMessenger/6.7.3 Language/zh_CN webview/ token/b8acb8f2802426934a5f1f2c447882f2'
# 假装自己是好人
headers = {
'User-Agent': User_Agent,
'content-type': 'text/html;charset = UTF-8',
'Accept': 'application/json, text/javascript, */*; q=0.01'
}
# 请求本页
r = requests.get(Target_link+"?page=%s" % page, headers=headers)
pattern = r'<img[\s\S]*?data-original="(.*?)" alt="(.*?)"'
img_list = re.findall(pattern, r.text, re.M) # 正则图片列表
for (path, name) in img_list:
exten = file_extension(path)
with open(path_photo + '/%s%s' % (name, exten), 'wb') as f:
# 远程请求 获取图片资源 并写出
f.write(requests.get(path, headers=headers).content) #请求图片 并下载回来、
# 批量下载的图片。。。本来要多线程下载的 不过 要吃饭了。。
# 其实获取图片列表挺快的 慢的是下载图片这个环境 应该在这个环节套个线程
for i in range(page):
face_list(i)
复制代码
其实是分享源码来着 不过 没找到对应的分类 emmmm 好像没有缩进了 我的天。。。。。。。
最佳答案
查看完整内容
加多进程会快点,多线程进入只会进入一个,因为有gil锁
评分
查看全部评分