python - 如何使用 BeautifulSoup 从 iframe 获取信息?
问题描述
我需要从电子商务链接的 iframe 中获取平均分数:https://produto.mercadolivre.com.br/MLB-1218117849-par-farol-polo-hatch-sedan-2003-2004-2005-2006-cromada-_JM#position=1&type=item&tracking_id=d57fba01-b043-49ca-9be5-7b026c275bd4
可以通过单击标题下方的星号来访问 iframe。
当我检查元素时,我发现:
<a rel="nofollow" class="iframe-modal " data-modal:url="/noindex/catalog/reviews/MLB1218117849?noIndex=true&itemId=MLB1218117849&modal=true&modalWidth=840&modalHeight=400&access=stars" data-modal:dinamic="true" data-modal:width="840" data-modal:height="400" data-modal:frameless="1" data-modal:style="new">
在这种情况下,我需要'data-modal:url='
,也就是说'/noindex/catalog/reviews/MLB1218117849?noIndex=true&itemId=MLB1218117849&modal=true&modalWidth=840&modalHeight=400&access=stars'
,能够获得“4.7”平均星数信息。
我已经尝试了很多我在这里看到的选项,但我什至无法获得链接。我得到的最接近的可能是:
eval_url = (soup.
find('a', {'rel':'nofollow',
'class':'iframe_modal ',
'data-modal:url':True}).get('data-modal:url').text)
尽管如此,它仍然无法正常工作。我做错了什么?
解决方案
要获取4.7
平均星数信息,您可以选择带有 的元素class="review-summary-average"
。
例如:
import requests
from bs4 import BeautifulSoup
url = 'https://produto.mercadolivre.com.br/MLB-1218117849-par-farol-polo-hatch-sedan-2003-2004-2005-2006-cromada-_JM#position=1&type=item&tracking_id=d57fba01-b043-49ca-9be5-7b026c275bd4'
soup = BeautifulSoup(requests.get(url).content, 'html.parser')
print(soup.select_one('.review-summary-average').text)
印刷:
4.7
推荐阅读
- azure-devops - 在 YAML 中批处理为 15 分钟,用于构建管道
- python - 在 python 中,如何将字典值从字符串更改为字典?
- mysql - MySQL 服务器 5.6:为什么我的时区大于 UTC 6 分钟
- angular - Angular 7在一个http请求JSON中加载公式的所有数据并将多个变量传递给组件
- python - 在python中混合使用开关和旋转对数字进行排序
- android - 从选择插入房间
- html - Django 中的 Bootstrap4 无法按预期工作
- javascript - 使用数字短格式日期模式检测特定的字符串结构
- javascript - 从我的 Angular 6 Web 应用程序运行 powershell 命令
- sql - 在 SQL Server 2017 中使用标识列间隙