【问题标题】:Error Web Scraping with ThreadPoolExecutor使用 ThreadPoolExecutor 进行错误 Web 抓取
【发布时间】:2017-06-12 02:21:08
【问题描述】:

我正在开发一个简单的网络抓取程序,但我什至无法下载一组简单的页面并获取它们的大小。

这是我的代码:

from concurrent.futures import ThreadPoolExecutor as Executor
urls = """reddit twitter tumblr instagram linkedin""".split()

def fetch(url):
    from urllib import request, error
    try:
        data = request.urlopen(url).read()
        return '{}: length {}'.format(url, len(data))
    except error.HTTPError as e:
        return '{}: {}'.format(url, e)

with Executor(max_workers=4) as exe:
    template = 'http://www.{}.com'
    jobs = [exe.submit(
        fetch, template.format(u)) for u in urls]
    results = [job.result() for job in jobs]

print('\n'.join(results))

在我正在运行的命令行中

python scrape.py

但我得到了错误

Traceback(最近一次调用最后一次): 文件“scrape.py”,第 1 行,在 从 concurrent.futures 导入 ThreadPoolExecutor 作为 Executor ImportError:没有名为 concurrent.futures 的模块

我需要做什么来克服这个错误?

【问题讨论】:

    标签: python python-2.7


    【解决方案1】:

    使用 Python 3。

    https://docs.python.org/3/library/concurrent.futures.html

    3.2 版中的新功能。

    【讨论】:

    • 没有向后移植到 2.7 吗?
    • 尝试一下不会有什么坏处。谢谢!
    猜你喜欢
    • 2019-01-09
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-30
    • 2018-01-23
    • 1970-01-01
    相关资源
    最近更新 更多