【发布时间】:2016-10-20 15:59:49
【问题描述】:
我正在尝试使用 python 来抓取 TripAdvisor 并从特定范围中提取文本 ---> <span>138<span>(没有优秀)
<label for="taplc_prodp13n_hr_sur_review_filter_controls_0_filterRating_5">
<div class="row_label">Excellent</div>
<span class="row_bar">
<span class="row_fill" style="width:65%;"></span>
</span>
<span>138<span>
</span></span></label>
到目前为止,这是我的代码:
for rating_all in moresoup.findAll('div',{'class':'col rating '}):
for record in rating_all.findAll('li'):
for rate1 in record.findAll('label',{'for':"taplc_prodp13n_hr_sur_review_filter_controls_0_filterRating_1"}):
print(rate1.find('div',{'class':"row_label"}).text + ",\t")
print(rate1.findAll('span'))
我尝试使用下标,但它不允许。当我在跨度之后使用 .text 时,它说没有文本,当我将其更改为 find 而不是 find all 时,它只会找到第一个跨度。
【问题讨论】:
-
你是如何下标/索引的?对我来说
rate1.findAll('span')[2].text给了我'138\n'。 -
哦!哇,太好了。我把下标放在 findAll 之后。所以 rate1.findAll[2]('span').text
-
太棒了!我已将其转换为答案,以便其他人更容易看到对您有用的解决方案,因此这显示为带有有效解决方案的问题。
标签: python-3.x web-scraping beautifulsoup