web-scraping - 在 1 天半的时间里对 48,000 个 url 页面进行网页抓取,但仍在继续。这正常吗?
问题描述
我收集了 48,000 个 url 页面并将它们放在一个列表中。我的目标是使用 BeautifulSoup 提取 8 条数据,并将每个数据点附加到这个 url 列表中的一个空列表中。
在我运行下面的 for 循环之前,我测试了列表中 3 个 url 的提取,它工作得非常好。
我知道代码有效,但我质疑完成 48,000 个 url 页面的网络抓取所需的时间,因为我的代码已经运行了一天半。这让我质疑我的代码,或者我创建代码的效率低下。
有人可以查看我的代码并就如何使代码运行得更快提供任何建议或想法吗?
提前致谢!
title_list = []
price_list = []
descrip_list = []
grape_variety_list = []
region_list = []
region_list2 = []
wine_state_list = []
wine_country_list = []
with requests.Session() as session:
for link in grape_review_links_list:
response2 = session.get(link, headers=headers)
wine_html = response2.text
soup2 = BeautifulSoup(wine_html, 'html.parser')
wine_title = soup2.find('span', class_='rating').findNext('h1').text
title_list.append(wine_title)
wine_price = soup2.find(text='Buy Now').findPrevious('span').text.split(',')[0]
price_list.append(wine_price)
wine_descrip = soup2.find('p', class_='description').find(text=True, recursive=False)
descrip_list.append(wine_descrip)
wine_grape = soup2.find(text='Buy Now').findNext('a').text
grape_variety_list.append(wine_grape)
wine_region = soup2.find(text='Appellation').findNext('a').text
region_list.append(wine_region)
wine_region2 = soup2.find(text='Appellation').findNext('a').findNext('a').text
region_list2.append(wine_region2)
wine_state = soup2.find(text='Appellation').findNext('a').findNext('a').findNext('a').text
wine_state_list.append(wine_state)
wine_country = soup2.find(text='Appellation').findNext('a').findNext('a').findNext('a').findNext('a').text
wine_country_list.append(wine_country)
解决方案
推荐阅读
- node.js - PM2 应用程序在打印时获得权限被拒绝
- kubernetes - 使用 kops 安装时,kube-dns pods 不运行
- ethereum - 无法使用 MetaMask 在我的 Dapp 中注入 Web 3 - 请协助
- tornadofx - 无法删除 tornadoFX 中的 ListView 项目
- verilog - 如何通过 I2c 配置 adv7180 视频解码器?
- javascript - 按钮元素可以有子节点吗?
- java - 带有 LWJGL 的 Java:未加速像素格式
- python - 如何在kivy中制作圆形进度条?
- flutter - 在颤动中使图像的边缘变暗?
- graph - 小图的图分区