【发布时间】:2020-09-19 16:04:53
【问题描述】:
我在 CSV 文件中有多个链接(URL),我想使用这些 URL 来提取/抓取数据并将其以字典格式存储。
为了方便这一点,我开发了一个函数,它将 URL 作为输入并返回一个字典作为输出。
例如:
def site_details(URL):
site_dict = {}
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
site_dict['Date_created'] = soup.find('div', attrs={"class":"date" })
site_dict['visits'] = soup.find('div', attrs={"class":"visits" })
return(site_dict)
现在我想并行处理所有 URL 并将它们存储在另一个字典中,以后可以将其转换为 CSV 文件。
到目前为止,我已经尝试了以下方法:
from multiprocess import Process, Manager
def f(d, x):
d[x] = site_details(df["Subject_link"][x])
return d
manager = Manager()
d = manager.dict()
job = [Process(target=f, args=(d, i)) for i in range(5)]
_ = [p.start() for p in job]
_ = [p.join() for p in job]
print(d)
问题是我得到一个空列表
我想要这样的输出:
d = {
1:{date_created : '22/1/2014',visits:490}
2:{date_created : '23/1/2014',visits:480}
3:{date_created : '24/1/2014',visits:470}
}
感谢您的帮助!
【问题讨论】:
标签: python dictionary parallel-processing multiprocessing python-multiprocessing