Python BeautifulSoup-在iframe中抓取Web内容 [英] Python BeautifulSoup - Scrape Web Content Inside Iframes
本文介绍了Python BeautifulSoup-在iframe中抓取Web内容的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我们有以下URL: https://www.aliexpress.com/store/feedback-score/1665279.html
所需的内容是iframe中的反馈历史记录"表:
And the needed content is the "Feedback History" table, which is inside an 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%
我们如何提取它?
推荐答案
您只需要获取 iframe
的 src
属性,然后请求并解析其内容:
You just need to obtain the src
attribute of the iframe
, and then request and parse its content:
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")]))
结果:
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%
这篇关于Python BeautifulSoup-在iframe中抓取Web内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文