python - 在跨度标记中的引号内刮擦
问题描述
新刮。我正在尝试抓取引号和
标签中的元素。如果我输入:
for rating in flex.find_all("div", class_="article-seller-rating m-t-1"):
print(rating)
我得到以下信息:
<div class="article-seller-rating m-t-1">
<div>
<span class="rating relative js-popover pointer" data-container="body" data-content="Buyers rated this dealer:<br><br>4.9 out of 5 stars<br>Number of reviews: 18" data-placement="top" data-title="Reviews">
<More un-important stuff here>
</span></div>
</div>
我想提取2个元素:
4.9(评论评级),和
18(评论数)
任何帮助是极大的赞赏!
解决方案
我想出了一个解决办法。
当有时缺少其中一个或两个值时,我也遇到了一个问题,我想指出这一点,因为我正在将列表编译为数据。
我选择“数据内容”元素中的所有数字,使用 [r'\d+(?:.\d+)?'] 作为第一个值(带小数位)和 [r'\d+(?:, \d+)?'] 用逗号表示第二个值。这也设法跳过“满分 5 星”。“除了 IndexError:” 处理它何时丢失。
for rating in flex.find_all("div", class_="article-seller-rating m-t-1"):
try:
starrate = rating.select('span')[0].get("data-content")
stars = re.findall(r'\d+(?:\.\d+)?',starrate)
s=stars[0]
master_list[c].append(s)
ratings = re.findall(r'\d+(?:\,\d+)?',starrate)
r=ratings[3]
master_list[c].append(r)
except IndexError:
推荐阅读
- docker - ML docker 容器本地设置完成。现在如何使用 Kubernetes 在共享云平台上进行部署?
- http - 状态 302 - 错误文档移动(HTTP 高级)
- c++ - 关于匿名命名空间和内部链接的标准是什么?
- laravel - Laravel - 如何将外键值显示为视图刀片的标题
- oracle - 带游标的plsql过程
- javascript - 删除重定向 onclick
- python - 如何从 ipynb 文件运行另一个 ipynb 文件?
- c# - Asp.net Core 获取 Bearer error="invalid_token", error_description="签名无效"
- python - 如何使用 groupby 或 resample 对每小时数据进行下采样,以根据 python 中的年日小时索引对数据进行分组?
- rabbitmq - 组件崩溃时 RabbitMQ 崩溃