Python BeautifulSoup - очистить веб-контент внутри фреймов - PullRequest
0 голосов
/ 04 февраля 2019

У нас есть этот URL: 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%

Как мы ее извлекаем?

1 Ответ

0 голосов
/ 04 февраля 2019

Вам просто нужно получить атрибут src для iframe, а затем запросить и проанализировать его содержимое:

import requests
from bs4 import BeautifulSoup

s = requests.Session()
r = s.get("https://angrygoldfish.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%
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...