首页 > 解决方案 > 在 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)

标签: web-scrapingbeautifulsoup

解决方案


推荐阅读