【问题标题】:slowing down a webscrape using python使用 python 减慢 webscrape
【发布时间】:2016-03-19 02:35:50
【问题描述】:

我正在尝试抓取一个网站,我遇到的问题是页面需要时间来加载。因此,当我的抓取完成时,我可能只得到 5 个项目,而可能有 25 个项目。有没有办法减慢 python 的速度。我正在使用美丽的汤 这是我正在使用的代码

import urllib
import urllib.request
from bs4 import BeautifulSoup

theurl="http://agscompany.com/product-category/fittings/tube-nuts/316-tube/"
thepage = urllib.request.urlopen(theurl)
soup = BeautifulSoup(thepage,"html.parser")

for pn in soup.find_all('div',{"class":"shop-item-text"}):
    pn2 = pn.text
    print(pn2)

谢谢

【问题讨论】:

  • 请发布您的代码...
  • 更有可能是网页使用javascript在用户滚动时加载更多项目。
  • 已添加代码 - 抱歉

标签: python-3.x web-scraping beautifulsoup


【解决方案1】:

所有结果都可以从这些页面访问:

http://agscompany.com/product-category/fittings/tube-nuts/316-tube/page/ http://agscompany.com/product-category/fittings/tube-nuts/316-tube/page/2/ ...

所以你可以在页码上循环访问它们:

import urllib
import urllib.request
from bs4 import BeautifulSoup

theurl="http://agscompany.com/product-category/fittings/tube-nuts/316-tube/"
for i in range(1,5):
  thepage = urllib.request.urlopen(theurl + '/page/' + str(i) + '/')
  soup = BeautifulSoup(thepage,"html.parser")

  for pn in soup.find_all('div',{"class":"shop-item-text"}):
      pn2 = pn.text
      print(pn2)

【讨论】:

    【解决方案2】:

    @Kenavoz 答案的更通用版本。

    这种方法不关心有多少页。

    另外,我会选择requests 而不是urllib

    import requests
    from bs4 import BeautifulSoup
    
    url_pattern = 'http://agscompany.com/product-category/fittings/tube-nuts/316-tube/page/{index}/'
    status_code = 200    
    url_index = 1
    
    while status_code == 200:
        url = url_pattern.format(index=url_index)
        response = requests.get(url)
    
        status_code = response.status_code
        url_index += 1
    
        soup = BeautifulSoup(response.content, 'html.parser')
        page_items = soup.find_all('div', {'class': 'shop-item-text'})
    
        for page_item in page_items:
            print(page_item.text)
    

    【讨论】:

      猜你喜欢
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多