python 采集斗图啦(多线程)

子枫Eric 2020/7/30 8:03:39

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)…
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 。

随时随地学软件编程-关注百度小程序和微信小程序
关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[python 采集斗图啦(多线程)]http://www.zyiz.net/tech/detail-145394.html

上一篇:Python快速入门的方法,看懂了一周即可入门,附所需要的资源

下一篇:python 采集斗图啦xpath

赞(0)

共有 条评论 网友评论

验证码: 看不清楚?
    关注微信小程序
    程序员编程王-随时随地学编程

    扫描二维码或查找【程序员编程王】

    可以随时随地学编程啦!

    技术文章导航 更多>
    扫一扫关注最新编程教程