python - 使用 Parser 从 Span 中提取内联数据
问题描述
我希望能够从内联跨度中提取一些数据,但无法将数据取出。
下面是代码部分,我正在尝试获取data-score="5"。该数字将根据客户评论而更改。
HTML部分:
<span aria-label="5 star review" class="jdgm-rev__rating" data-score="5" tabindex="0">
有人帮助我的 Python3 部分可以提取类选择器但想要获取不是类的数据。
部分 Python 代码:
with requests.Session() as s:
r = s.get(start_url).json()
soup = bs(r['html'], 'lxml')
ratings.extend([i.text for i in soup.select('.jdgm-rev__rating')])
titles.extend([i.text for i in soup.select('.jdgm-rev__title')])
total_pages = int(soup.select_one('.jdgm-paginate__last-page')['data-page'])
解决方案
您寻求的是跨度的属性。
>>> from bs4 import BeautifulSoup
>>>
>>> soup = BeautifulSoup('<p><span aria-label="5 star review" class="jdgm-rev__rating" data-score="5" tabindex="0">')
>>> soup.find('span').attrs
{'aria-label': '5 star review', 'class': ['jdgm-rev__rating'], 'data-score': '5', 'tabindex': '0'}
>>>
>>> int(soup.find('span').attrs['data-score'])
5
推荐阅读
- java - 如何使用 selenium 在查看页面源中搜索变量值
- node.js - 从节点js中的表中抓取数据
- php - wp_get_current_user 不在角色中
- javascript - 如何输入字符串的最后一个字符以刷新页面
- linux-kernel - 保存文本文件时出现错误(无法打开要写入的文件)
- apache-spark - TypeError: can't pickle generator objects: Spark collect() fails due to unserializable generator return type (dict_key)
- android - Node js在Android应用程序中打开ssl(不安全)https服务问题
- spring - 如何在 Service 类中使用 org.quartz.Scheduler 对象
- php - 如何使用 mysqli 数据类型时间将计算的时间存储到数据库中?
- jboss - 我们可以使用 check_mk 监控工具来监控 Jboss 吗?