首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python多处理如何让脚本更快?

Python多处理如何让脚本更快?
EN

Stack Overflow用户
提问于 2017-04-17 22:29:20
回答 1查看 247关注 0票数 2

Python 3.6

我正在写一个脚本,使我自动检查,以确保在一个网站上的所有链接工作。

我有它的一个版本,但它运行得很慢,因为python解释器一次只运行一个请求。我导入selenium以在列表中下拉链接。我从41000个链接的列表开始。我摆脱了重复,现在我的列表中只有7300个链接。我使用request模块来检查响应代码。我知道多处理是答案,只要看看一堆不同的方法就知道了。哪一个最能满足我的需求?在进阶时谢谢。这是我第一次在论坛上发帖,如果我没有遵守协议,请原谅。在进阶时谢谢

特拉维斯

下面的函数检查我正在尝试加速的python请求模块的链接:

代码语言:javascript
复制
def check_links(y):
    for ii in y:
        try:
            r = requests.get(ii.get_attribute('href'))
            rc = r.status_code
            print(ii.get_attribute('href'), ' ', rc)
        except Exception as e:
            logf.write(str(e))
        finally:
            pass

EN

回答 1

Stack Overflow用户

发布于 2017-05-02 14:06:04

如果您只需要将相同的函数应用于列表中的所有项,则只需使用进程池,并映射到您的输入。下面是一个简单的例子:

代码语言:javascript
复制
from multiprocessing import pool

def square(x):
    return {x: x**2}

p = pool.Pool()
results = p.imap_unordered(square, range(10))

for r in results:
    print(r)

在本例中,我使用了imap_unordered,但也使用了mapimap。您应该选择与您的需求最匹配的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43453450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档