吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

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

[求助] python多进程不快反慢

[复制链接]
魔道书生 发表于 2020-3-26 18:42
如题
用pool函数创建进程池之后
执行速度反而更慢
求大佬给个多线程或者多进程下载图片的例子

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

nstar1221 发表于 2020-3-26 18:54
一般卡在网速上,试试协程
猫南北爱上狗东西 发表于 2020-3-26 19:01
卫国 发表于 2020-3-26 19:21
 楼主| 魔道书生 发表于 2020-3-26 19:42
nstar1221 发表于 2020-3-26 18:54
一般卡在网速上,试试协程

已解决 谢谢大佬关注
 楼主| 魔道书生 发表于 2020-3-26 19:44

已解决 谢谢大佬关注
希望能给个多进程模板
非法菜鸟 发表于 2020-3-26 19:58
下载图片属于io密集型操作 选用多线程 或协程操作比较合适   在cpu密集型操作中多进程的优势比较明显
猫南北爱上狗东西 发表于 2020-3-26 20:02
[Asm] 纯文本查看 复制代码
import requests
from scrapy import Selector
from concurrent.futures import ThreadPoolExecutor
from queue import Queue

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36'
}


class BoundedThreadPoolExecutor(ThreadPoolExecutor):
    def __init__(self, max_workers=None, thread_name_prefix=''):
        super().__init__(max_workers, thread_name_prefix)
        self._work_queue = Queue(max_workers * 2)


def get_href():
    # 获取所有url
    hrefs = []
    url = 'https://www.2717.com/ent/meinvtupian/list_11_1.html'
    res = requests.get(url=url, headers=headers)
    res.encoding = 'gb2312'  # respose重新编码
    html = res.text
    # 获取目录页所有链接
    sel = Selector(text=html)
    lis = sel.xpath("//div[@class='MeinvTuPianBox']//li")
    for li in lis:
        a = li.xpath('.//a')[0]
        href = a.css('::attr(href)').extract()[0]
        href = 'https://www.2717.com' + href
        hrefs.append(href)
    return hrefs


def parser_img(href):
    print(href)


if __name__ == '__main__':
    hrefs = get_href()
    executor = BoundedThreadPoolExecutor(max_workers=8)
    for href in hrefs:
        executor.submit(parser_img, href)
葫芦炒鸡蛋 发表于 2020-3-26 20:28
魔道书生 发表于 2020-3-26 19:44
已解决 谢谢大佬关注
希望能给个多进程模板

我写了个多进程爬虫框架,你可以去看看。pypi搜MultiprocessingSpider
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-30 06:05

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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