栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python 采集斗图啦(多线程)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python 采集斗图啦(多线程)

import concurrent
import requests;
from concurrent.futures import ThreadPoolExecutor
import os;
import parsel;

def send_request(url):
    header = {
 "user-agent":'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
    }
    requests.packages.urllib3.disable_warnings()
    response = requests.get(url,headers=header)
    return response
def pare_data(data):
     selector = parsel.Selector(data)
     result_list = selector.xpath('//a[@class="col-xs-6 col-sm-3"]')
     for result in result_list:
 title = result.xpath('./img/@alt').get()
 src_url = result.xpath('./img/@data-original'). get()

 all_title = title+'.'+src_url.split('.')[-1]
 yield all_title,src_url

def save_data(file_name,data):
    dir_name = 'doutu_list'
    if not os.path.exists(dir_name):
 os.mkdir(dir_name)
    with open(dir_name+'/'+file_name,'wb') as f:
 f.write(data)
 print("保存完成:",file_name)


def main(page):
    for page in range(1,page+1):
 print('########################当前为第{}页########################'.format(page))
 thread_pool = concurrent.futures.ThreadPoolExecutor(max_workers=1)
 res = send_request('https://www.doutula.com/photo/list/?page={}'.format(str(page)))
 src_url = pare_data(res.text)
 for file,url in src_url:
     print(file)
     print(url)
     image_response = send_request(url)
     thread_pool.submit(save_data,file,image_response.content)
 thread_pool.shutdown()

if __name__=='__main__':
    main(1)

高颜值后台管理系统免费使用 ### 子枫后台管理系统 ###,可在宝塔面板直接安装

如果您对我的其他专题内容感兴趣,直达我的个人博客:www.wangmingchang.com 。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/219660.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号