首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python 3中使用lxml xpath抓取文字类描述

在Python 3中使用lxml xpath抓取文字类描述
EN

Stack Overflow用户
提问于 2018-02-08 21:15:39
回答 1查看 235关注 0票数 0

我有一个关于我的网络大厦的小问题。我正在尝试对trustpilot上的一个网站的每个评论进行评分。让我们以https://www.trustpilot.com/review/www.amazon.com为例,尽管我设法抓取了评论内容和标题,但我似乎无法掌握给出的星的数量(1到5)。

如果我看一下html代码,它不会显示'text‘,所以我可以给它分配特定的类(就像我对content和title所做的那样)。

然而,给出的星级数量在类别描述本身中提到-5星级评级具有元素:div class=''star-rating count-5 size-medium clearfix''. a 2-star rating the following: iv class=''star-rating count-2 size-medium clearfix''

此类位于: div class="review-info clearfix“

有没有人知道我如何抓取文字类,或者每次复查只需要count-x元素?

EN

回答 1

Stack Overflow用户

发布于 2018-02-08 21:34:58

可以使用BeautifulSoup轻松地提取该类

代码语言:javascript
复制
from bs4 import BeautifulSoup
import requests
c = requests.get('https://www.trustpilot.com/review/www.amazon.com').content
soup = BeautifulSoup(c, 'html.parser')
reviews = soup.find_all('div', {'class': 'review-stack'})
for review in reviews[:5]:
    print(review.find('div', {'class': 'star-rating'})['class'])

这将打印出以下列表:

代码语言:javascript
复制
['star-rating', 'count-5', 'size-medium', 'clearfix']
['star-rating', 'count-5', 'size-medium', 'clearfix']
['star-rating', 'count-1', 'size-medium', 'clearfix']
['star-rating', 'count-4', 'size-medium', 'clearfix']
['star-rating', 'count-4', 'size-medium', 'clearfix']

现在,您只需选择列表中的正确元素,即可获得您的评分。

使用lxml:

代码语言:javascript
复制
from lxml import html
import requests
page = requests.get('https://www.trustpilot.com/review/www.amazon.com')
tree = html.fromstring(page.content)

reviews = tree.xpath("//div[@class='review-info clearfix']/div[1]")
for rev in reviews:
    print(rev.get('class'))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48686393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档