1
Seleniumを使用して、すべてのiframeタグにネストされたHTMLドキュメントを取得しようとしています。私はiframeの中でHTMLを取得することができますが、私が望むすべてのソースコードなしで私を残して、私は実行されていないと信じているタグがあります。 HTMLを取得してjavascriptを実行し、javascriptを実行した後で新しいHTMLを処理する方法はありますか?Web-scraping HTML、javascriptが実行されていないため、HTMLが欠落しています。 DOMを編集するためにすべてのスクリプトタグを実行するにはどうすればよいですか?
コード:
from bs4 import BeautifulSoup
import requests
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
import time
browser = webdriver.Chrome('C:/Users/G/chromedriver.exe')
browser.get("http://www.reddit.com")
time.sleep(1)
innerHTML = browser.execute_script("return document.body.innerHTML")
time.sleep(1)
iframes = browser.find_elements_by_tag_name("iframe")
time.sleep(1)
for iframe in iframes:
browser.switch_to_default_content()
browser.switch_to_frame(iframe)
source = browser.page_source
time.sleep(1)
print(source)
「実行されていない」タグはどのようなタグですか、なぜこれを信じますか? – kindall
HTMLファイルでjavascriptを実行するとDOMに追加できます。 iframeの内部HTMLを取得して印刷すると、実行されていない大きなスクリプトタグが1つだけ取得されます。あなたがクロム・インスペクタを使ってページ・ソースを見ると、私のプリント・ステートメントからは見えないHTMLが増えているので、彼らは「実行されていない」と私は信じています。 – user8922432
何もスクレイピングのためにtampermonkeyを打ち負かす、何も。 – dandavis