首页 > 解决方案 > 使用 python 多线程池 API 解析多个链接

问题描述

我正在使用 python 多线程池 API/函数,即:

p = multithreading.pool( NO.OF REQUESTS AT A TIME ) 
p.map ( function , iterator )

根据我的研究,池函数内部的参数告诉我们“一次要解析多少个请求”。所以我想知道那个参数“NO.OF REQUESTS AT A TIME”的确切含义/解释,记住这个含义是根据我的研究,它可能是错误的。

实际上,我有 1500 个 URL,我想在更短的时间内解析/提取信息,因为使用普通方法会花费太多时间。

我一次尝试使用 0-50 解析/请求,它工作得非常好,但是当我尝试做得更高一点时,它不会给我那么快的结果。

#!/usr/bin/python
# -*- coding: utf-8 -*-


def prices_models_location(i):

    prices = []
    models = []
    location = []
    req = requests.get(i)
    soup = BeautifulSoup(req.content, 'html.parser')
    price = soup.find('span', {'itemprop': 'price'})
    model = soup.find('h2', {'itemprop': 'model'})
    loc = soup.find('span', {'itemprop': 'availableAtOrFrom'})

    return (prics, loc, model)
p = pool.Pool(50)
Price_location_model = [p.map(prices_models_location, user_sec[0])]

# p.terminate()
# p.join()

标签: pythonpython-requestspython-multiprocessingpython-multithreadingpython-pool

解决方案


推荐阅读