【发布时间】:2015-12-10 16:04:27
【问题描述】:
也许我的术语在这里有点偏离,但希望你能明白。 我正在尝试从具有三个评级的食品评论网站上抓取数据:快乐、中立、不快乐。网站中每个计数的数量写成:
<div class="col PL20">
<div class="sprite-sr2-face-smile1"></div>
<div class="sr2_score_l">25</div>
</div>
<div class="col MR20 MT20 ML20">
<div class="sprite-sr2-face-ok2 MT20"></div>
<div class="sr2_score_m">17</div>
</div>
<div class="col ML10 MT20">
<div class="sprite-sr2-face-cry2 MT20"></div>
<div class="sr2_score_m">2</div>
</div>
所以在这种情况下,快乐计数的数量是 25,中性是 17,不快乐是 2。问题是我下面的 python 代码我无法区分中性计数和不快乐计数,因为共享同一个类,是有办法解决吗?
# using BeautifulSoup4 and lxml
import urllib2
from bs4 import BeautifulSoup
soup = BeautifulSoup(urllib2.urlopen('http://www.openrice.com/_
en/hongkong/restaurant/central-open-kitchen/136799').read())
happy = soup.find('div', attrs={'class': 'sr2_score_l'})
print "happy rating, " + happy.string
neutral = soup.find('div', attrs={'class': 'sr2_score_m'})
print "neutral rating, " + neutral.string
unhappy = soup.find('div', attrs={'class': 'sr2_score_m'})
print "neutral rating, " + neutral.string
【问题讨论】:
标签: python html web-scraping beautifulsoup lxml