我使用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对象,但是看来我收到了一个列表。有人可以为我澄清我做错了什么吗?
答案 0 :(得分:1)
我发现了解决问题的方法。
我更改代码:
iframe = soup.find('iframe')
到
iframe = soup.find_all('iframe')
然后,我没有收到None作为响应,而是开始收到[]。空值。
我使用以下方法进行了测试:
if iframes != [] :
print( iframes[0]['src'] )
我使用iframes [0] ['src'] 获得了src的内容