Извлечение фреймов с использованием BeautifulSoup с Python - PullRequest
0 голосов
/ 21 марта 2019

Я использую Canvas LMS и хочу извлечь iframe из некоторых страниц, чтобы изменить содержимое src. Я пробую следующее:

//some code
soup = BeautifulSoup(page_html, 'html.parser')
pretty_html = soup.prettify()
soup = BeautifulSoup(pretty_html, 'html.parser')
iframe = soup.find('iframe')
print(iframe)

Но результат неожиданный, я получил в результате:

None
None
<iframe allowfullscreen="" frameborder="0" height="276" mozallowfullscreen="" scrolling="no" src="https://fast.player.liquidplatform.com/pApiv2/embed/e50a2b66dc19adc532f288eb4bf2d302/%20f2c5f6ca3a4610c55d70cb211ef9d977" webkitallowfullscreen="" width="490"></iframe>
None
None
None
None
None
None

Я ожидал только получить это

<iframe allowfullscreen="" frameborder="0" height="276" mozallowfullscreen="" scrolling="no" src="https://fast.player.liquidplatform.com/pApiv2/embed/e50a2b66dc19adc532f288eb4bf2d302/%20f2c5f6ca3a4610c55d70cb211ef9d977" webkitallowfullscreen="" width="490"></iframe>

На странице html получен только один iframe, что не так с результатом? Я думаю, что я должен получить только один объект iframe, но, похоже, я получаю список. Кто-то может уточнить для меня, что я делаю не так?

1 Ответ

1 голос
/ 21 марта 2019

Я узнаю, как решить проблему.

Я меняю код:

iframe = soup.find('iframe')

до

iframe = soup.find_all('iframe')

Затем, вместо того, чтобы получить None в качестве ответа, я начинаю получать []. Пустое значение.

Я проверил это с помощью:

if iframes != [] :
    print( iframes[0]['src'] )

Я получил содержимое src, используя iframes [0] ['src']

...