python - Python BeautifulSoup - 在 iframe 中抓取 Web 内容
问题描述
我们有这个网址: https ://www.aliexpress.com/store/feedback-score/1665279.html
所需内容是 iframe 内的“反馈历史记录”表:
Feedback 1 Month 3 Months 6 Months
Positive (4-5 Stars) 154 562 1,550
Neutral (3 Stars) 8 19 65
Negative (1-2 Stars) 8 20 57
Positive feedback rate 95.1% 96.6% 96.5%
我们如何提取它?
解决方案
您只需要获取 的src
属性iframe
,然后请求并解析其内容:
import requests
from bs4 import BeautifulSoup
s = requests.Session()
r = s.get("https://www.aliexpress.com/store/feedback-score/1665279.html")
soup = BeautifulSoup(r.content, "html.parser")
iframe_src = soup.select_one("#detail-displayer").attrs["src"]
r = s.get(f"https:{iframe_src}")
soup = BeautifulSoup(r.content, "html.parser")
for row in soup.select(".history-tb tr"):
print("\t".join([e.text for e in row.select("th, td")]))
结果:
反馈 1 个月 3 个月 6 个月 正面(4-5 星) 154 562 1,550 中性(3 星)8 19 65 负面(1-2 星)8 20 57 正反馈率 95.1% 96.6% 96.5%
推荐阅读
- git - 如何识别 Git 中的强制推送?
- javascript - 使用 fetch 将图像数组发送到烧瓶后端
- php - 在 Codeigniter 3 中上传时如何显示不允许的文件类型错误消息?
- r - 如果我对每个基因的原始信息是它们的 ENSEMBL ID,我如何使用 select(org.Mm.eg.db) 函数在 R 中注释我的基因?
- nginx - Nginx 捕获并重写所有以 /api 开头的请求到代理
- flutter - 在 gridview.builder 中强制关闭应用程序加载图像
- excel - 可以在电子邮件正文字符串中使用列中的值(例如名称)吗?
- postgresql - postgresql.conf 文件被忽略
- excel - 使用 VBA 在一个单元格中查找每个逗号分隔值并返回电子邮件
- python - 我编写了一个自定义函数来从 csv 文件中获取数据,该函数在代码中不能多次使用