python beautifulsoup iframe документ html экстракт
Я пытаюсь узнать немного красивого супа и получить некоторые данные html из некоторых iFrames - но до сих пор я не был очень успешным.
Итак, разбор iFrame сам по себе не кажется проблемой с BS4, но я, похоже, не получаю встроенный контент из этого - что бы я ни делал.
например, рассмотрим ниже iFrame (это то, что я вижу в инструментах разработчика chrome):
<iframe frameborder="0" marginwidth="0" marginheight="0" scrolling="NO"
src="http://www.engineeringmaterials.com/boron/728x90.html "width="728" height="90">
#document <html>....</html></iframe>
здесь <html>...</html>
содержание меня интересует экстрагирование.
однако, когда я использую следующий код BS4:
iFrames=[] # qucik bs4 example
for iframe in soup("iframe"):
iFrames.append(soup.iframe.extract())
Я:
<iframe frameborder="0" marginwidth="0" marginheight="0" scrolling="NO" src="http://www.engineeringmaterials.com/boron/728x90.html" width="728" height="90">
другими словами, я получаю iFrames без документа <html>...</html>
внутри них.
я попробовал что-то вроде:
iFrames=[] # qucik bs4 example
iframexx = soup.find_all('iframe')
for iframe in iframexx:
print iframe.find_all('html')
.. но это, похоже, не работает..
Итак, я думаю, мой вопрос в том, как надежно извлечь эти объекты документа <html>...</html>
из элементов iFrame.
1 ответов
браузеры загружают содержимое iframe в отдельном запросе. Вам придется сделать то же самое:
for iframe in iframexx:
response = urllib2.urlopen(iframe.attrs['src'])
iframe_soup = BeautifulSoup(response)
помните: BeautifulSoup не является браузером; он не будет получать изображения, CSS и JavaScript-ресурсы для вас.