【问题标题】:Scraping with BeautifulSoup showing too many rows用 BeautifulSoup 抓取显示太多行
【发布时间】:2018-03-28 03:06:01
【问题描述】:

提前感谢您的帮助!我是这方面的初学者,因此不胜感激。如果有使用 beautifulsoup 的有用指南,我会提供一个链接。一直没能成功。

我想从图.pipWineryImage_map (38.417216 / -122.336862) 下的 href 链接中的 ul.wineRatings_list、span.pipSecContent_copy 和纬度/经度中刮取 this page 的 wineRatings_initials 和 wineRatings_rating 和 averageRating_average 和 averageRating_number

这会带回所有 wineRatings_initials 的实例,甚至是那些在 div.prodPedigree 下的实例,我不需要这些实例。 soup.find_all("span", {"class": "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') 

【问题讨论】:

  • 抱歉 - 这里是代码: 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')
  • Stack Overflow 不是免费的编程服务,我们也不会为您搜索 Google。 Beautifulsoup 是一个清晰、简单且文档齐全的库,有大量教程教你如何使用它。我建议您找到一个教程,阅读本网站上的一些其他问题,了解 beuatifulsoup,这将帮助您学习一些最佳实践,然后在遇到困难时提出问题,明确定义您的问题是什么以及我们如何解决帮助你,而不是大声要求和拒绝付出努力。
  • @EthanField - 我并不是想将它用作编程服务,尽管我可以看到我的问题是如何产生的。这不是一个要求。我想我会回到教程!

标签: python html css web-scraping beautifulsoup


【解决方案1】:

我对您的问题有点困惑,但如果我理解正确,您只想从页面顶部获取平均葡萄酒评分,就像这里用红色圈起来的那些。 average wine ratings

只要此列表始终是页面上的第一个,您就可以使用类似的方法来获取它们。

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

请注意,“find”方法只会抓取它找到的第一个实例,因此需要将平均评分列表放在页面顶部。

【讨论】:

  • 谢谢!我正在尝试获取平均葡萄酒评级中的所有行。我想我是用 soup.find_all("li", {"class" : "wineRatings_listItem"})
猜你喜欢
  • 1970-01-01
  • 2022-12-03
  • 2019-09-25
  • 2021-11-06
  • 2019-09-17
  • 2020-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多