2017-10-16 95 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