如何使用并发处理熊猫数据帧中的异常

时间:2021-07-26 07:34:44

标签: python-3.x pandas web-scraping concurrent.futures

我正在尝试抓取链接列表,为此我正在使用 concurrent.futures。 这是我目前使用的代码

with concurrent.futures.ThreadPoolExecutor(max_workers=2) as executor:
        future_to_url = {
            executor.submit(get_data, row[1]): row for row in df.iterrows()
        }
        for future in concurrent.futures.as_completed(future_to_url):
            url = future_to_url[future]
            try:
                data = future.result()
                final = pd.concat([final, data], sort=False)
                # print(final)
            except Exception as exc:
                # pdb.set_trace()
                errors = pd.concat([errors,pd.DataFrame({"url":url, "error":exc})[1:]])

数据框 df 包含两列 - 链接和国家/地区。

<头>
链接 国家
ABC.com 美国
XYZ.com 加拿大

函数 get_data 是从链接中抓取数据的调用。现在我想要做的是创建另一个名为 errors 的数据框,其中包含两列 - url 和 error ,以便我可以将 url 与异常一起存储在 excel 中。 例如-

<头>
网址 错误
ABC.com 错误信息

但问题是我无法仅在错误数据帧的 url 列中链接并获得这样的元组。

(1, Sources    https://coinatmradar.com/bitcoin_atm/23676/bit...
Country                                        United States
Name: 1, dtype: object).

这里连链接都不完整。

有这样做的想法吗?

0 个答案:

没有答案