簡體   English   中英

注意在 Python 中使用 BeautifulSoup 限制抓取結果的警告

[英]Noticing a warning to limit scraped results with BeautifulSoup in Python

我正在嘗試使用 BeautifulSoup 在 Python 中從 eBay 中抓取最近售出商品的銷售數據,它與以下代碼配合使用效果很好,它可以找到已售商品的所有價格和所有日期。

 price = []
   
    try:
        p = soup.find_all('span', class_='POSITIVE')

    except:
        p = 'nan'
          
    for x in p:
        x = str(x)
        x = x.replace(' ','"')
        x = x.split('"')
        
        if '>Sold' in x:
            continue
        else:
            price.append(x)

現在我遇到了一個問題。 如下圖所示 URL ( https://www.ebay.com/sch/i.html?_from=R40&_trksid=p2334524.m570.l1313&_nkw=babe+ruth+1933+goudey+149+psa.5%2 29&_sacat=0&LH_TitleDesc=0&_osacat=0&_odkw=babe+ruth+1933+goudey+149+psa+1.5&LH_Complete=1&rt=nc&LH_Sold=1 ), 如果沒有足夠的特定搜索查詢,eBay 有時會建議其他搜索結果。 查看圖片

這樣,我的代碼不僅可以找到正確的價格,還可以找到低於警告的建議結果的價格。 我試圖找出警告消息所在的位置並刪除之后找到的每個列表,但我無法弄清楚。 我還以為我可以一個一個地搜索價格,但即便如此,我也不知道如何注意到警告出現的時間。

大家還有什么辦法可以解決這個問題嗎?

我知道這很具體

您可以抓取結果數量(如圖所示)並使用結果范圍進行循環。

截屏

代碼將類似於:

results = soup.find...
#You have to make the variable a int so replace everything extra
results = int(results)

  
for i in range(1, results):
        price[i] = str(price[i])
        price[i] = price[i].replace(' ','"')
        price[i] = price[i].split()
        
        if '>Sold' in price[i]:
            continue
        else:
      

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM