我当前获取所需内容的代码如下:
#BeautifulSoup
textContent = []
headline = soup.find('a', attrs={"class":"title"}).text
review = soup.find('div', attrs={"class":"text show-more__control"}).text
rating = soup.find('div', attrs={"class":"rating-other-user-rating"})
textContent.append(headline)
print(headline)
textContent.append(review)
print(review)
textContent.append(rating)
print(rating)
我得到评论的标题和文字,但没有获得评分,因为该信息与其他信息位于不同的“标签系统”中。在html代码上,它看起来像这样:
<span class="rating-other-user-rating">
<svg class="ipl-icon ipl-star-icon " xmlns="http://www.w3.org/2000/svg" fill="#000000" height="24" viewBox="0 0 24 24" width="24">
<path d="M0 0h24v24H0z" fill="none"></path>
<path d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"></path>
<path d="M0 0h24v24H0z" fill="none"></path>
</svg>
<span>6</span><span class="point-scale">/10</span>
</span>
我要获取的信息是“ 6”。显然,我不能只通过“ soup.find .---。text(),因为它是一个无对象。
感谢您的帮助!
答案 0 :(得分:0)
1)将'div
'更改为'span'
2)
6/10
'/'
[0]
的元素替换:
rating = soup.find('div', attrs={"class":"rating-other-user-rating"})
使用方式:
rating = soup.find('span', attrs={"class":"rating-other-user-rating"}).text.strip().split('/')[0]
输出:
print (rating)
6