吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5569|回复: 8
收起左侧

[Python 转载] 多线程图片采集+下载

[复制链接]
hksnow 发表于 2019-2-13 10:53
本帖最后由 hksnow 于 2019-2-13 11:35 编辑

我的**小视频采集帖子被删了看到论坛里有许多发python爬虫下载图片的,但是都是单线程的,下载有些慢,我发个多线程的吧。


futures模块时python官方对threading等多线程模块的整合,pip安装下就好了

exe使用pyinstaller编译,文件比较大 下载地址:https://www.lanzouj.com/i34odpe

新代码

[Python] 纯文本查看 复制代码
import requests
import re
from concurrent import futures
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36'
}
def get_pages(num):
    list1 = []
    for x in range(1,num + 1):
        list1.append('https://www.doutula.com/photo/list/?page=' + str(x))
    return list1      
def download_file(file_url):
    f = requests.get(file_url,headers = headers)
    file_name = file_url.split('/')[-1]
    with open(file_name,'wb') as code:
        code.write(f.content)
def make_data(url):
    html1 = requests.get(url,headers = headers)
    result1 = re.findall('data-original="(.*?)!dta',html1.text,re.S)
    return result1
     
def main():
    numbers = input('请输入要下载的页数:')
    url_list1 = get_pages(int(numbers))
    ex = futures.ThreadPoolExecutor(max_workers=10) # 更改最大线程
    print('[INFO]正在下载请稍后...')
    for x in url_list1:
        html_data = make_data(x)
        for y in range(0,68):
            try:
                img_url = html_data[y]
                ex.submit(download_file,img_url)
                #print(file_name)
            except:
                print('Error')          
    print('[INFO]已经下载到根目录') 
# 以下是主函数
if __name__ == "__main__":
    main()


给个好评呗!

免费评分

参与人数 2吾爱币 +3 热心值 +2 收起 理由
苏紫方璇 + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
musicer03 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| hksnow 发表于 2019-2-13 11:25
本帖最后由 hksnow 于 2019-2-13 11:33 编辑

我这个代码检查了以下 发现有问题啊 我下载的图片都是预览缩略图,我说怎么这么小

更改了一下代码啊,一会我打包成exe发上来

[Python] 纯文本查看 复制代码
import requests
import re
from concurrent import futures
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36'
}
def get_pages(num):
    list1 = []
    for x in range(1,num + 1):
        list1.append('https://www.doutula.com/photo/list/?page=' + str(x))
    return list1      
def download_file(file_url):
    f = requests.get(file_url,headers = headers)
    file_name = file_url.split('/')[-1]
    with open(file_name,'wb') as code:
        code.write(f.content)
def make_data(url):
    html1 = requests.get(url,headers = headers)
    result1 = re.findall('data-original="(.*?)!dta',html1.text,re.S)
    return result1
    
def main():
    numbers = input('请输入要下载的页数:')
    url_list1 = get_pages(int(numbers))
    ex = futures.ThreadPoolExecutor(max_workers=10) # 更改最大线程
    print('[INFO]正在下载请稍后...')
    for x in url_list1:
        html_data = make_data(x)
        for y in range(0,68):
            try:
                img_url = html_data[y]
                ex.submit(download_file,img_url)
                #print(file_name)
            except:
                print('Error')          
    print('[INFO]已经下载到根目录') 
# 以下是主函数
if __name__ == "__main__":
    main()  
 楼主| hksnow 发表于 2019-2-13 11:35
约定的童话 发表于 2019-2-13 11:14
能制作成exe吗?这个没法用啊

打包好了 这是下载地址

https://www.lanzouj.com/i34odpe
约定的童话 发表于 2019-2-13 11:14
 楼主| hksnow 发表于 2019-2-13 11:31
约定的童话 发表于 2019-2-13 11:14
能制作成exe吗?这个没法用啊

抱歉 pyinstaller编译不了,python打包exe还是有许多bug的
YAO21 发表于 2019-2-13 11:41
感谢分享
wanwfy 发表于 2019-2-18 20:26
厉害厉害,崇拜啊,大神
臭默 发表于 2019-3-28 18:42
小白用不了啊
wangz168 发表于 2020-3-15 23:30
填不进去东西,忧桑啊
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-17 03:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表