2017-10-16 96 views
-2

感謝您提前給予您的幫助!我是這個東西的初學者,所以任何幫助表示讚賞。如果有一個有用的指導,使用美麗的方式來做到這一點,我會採取一個鏈接。無法使其工作。用BeautifulSoup刮擦顯示太多行

我想刮this page從HREF鏈接wineRatings_initials和ul.wineRatings_list,span.pipSecContent_copy,並經/緯度wineRatings_rating和averageRating_average和averageRating_number figure.pipWineryImage_map下(38.417216/-122.336862)

這使支持wineRatings_initials的所有實例,甚至是那些我不需要的div.prodPedigree下的實例。 soup.find_all(「跨度」,{「級」:「wineRatings_initials」})

import urllib2 from bs4 
import BeautifulSoup wine_page = 'wine.com/product/shafer-red-shoulder-ranch-chardonnay-2014/‌​…; 
page = urllib2.urlopen(wine_page) 
soup = BeautifulSoup(page, 'html.parser') 
soup.find_all(class_='wineRatings_initials') 
+0

對不起 - 這裏是代碼:從BS4進口BeautifulSoup wine_page = 'https://www.wine.com/product/shafer-red-shoulder-ranch-chardonnay-2014/154926' 頁 進口的urllib2 = urllib2.urlopen(wine_page) soup = BeautifulSoup(page,'html.parser') soup.find_all(class _ ='WineRatings_initials') – ledivan

+0

Stack Overflow不是免費的編程服務,我們也不會爲您提供Google服務。 Beautifulsoup是一個清晰,簡單,有據可查的圖書館,有大量的教程教你如何使用它。我建議你找到一個教程,閱讀本網站上其他一些關於beuatifulsoup的問題,這將幫助你學習一些最佳實踐,然後問一個問題,如果你被困住了,給出一個清楚的定義你的問題是什麼以及我們可以如何幫助你,不要發出要求,拒絕付諸努力。 –

+0

@EthanField - 我並不想將它用作編程服務,儘管我可以看到我的問題是如何以這種方式出現的。這不是一個需求。我想我會回到教程! – ledivan

回答

0

我對你的問題有點困惑,但如果我的理解對不對,你要得到的只是普通的葡萄酒來自頁面頂部的評分,就像這裏用紅色圈起來的評分。 average wine ratings

只要此列表始終是頁面上的第一個,就可以使用類似這樣的內容來獲取它們。

list_of_ratings = soup.find("ul", {"class", "wineRatings_list"})('span') 

請注意,「find」方法只會抓住找到的第一個實例,因此需要將平均評級列表放在頁面的頂部。

+0

謝謝!我試圖抓住平均葡萄酒評級中的所有行。我想我已經用soup.find_all(「li」,{「class」:「wineRatings_listItem」}) – ledivan