8

これが私が読んだページです:

<html>
<head>
<script type="text/javascript">
    document.write("Hello World")
</script>
</head>
<body>
</body>
</html>

ご覧のとおり、Hello Worldは javascript を使用して HTML ページに追加されます。 HTML パーサーを使用すると、 のようにBeautifulSoupを解析できませHello Worldん。見る....?ありがとう。

4

2 に答える 2

13

PythonでWebスクレイパーを作成するときに同様の問題が発生し、BeautifulSoupと組み合わせたSeleniumWebDriverが非常に便利であることがわかりました。コードは次のようになります。

from selenium import webdriver
browser = webdriver.Firefox()
browser.get("http://www.yoursite.com")
soup = BeautifulSoup(browser.page_source, "html.parser")
...

Selenium WebDriverを使用すると、「特定のDOM要素が読み込まれるまで待機する」機能もあり、javascript要素とのタイミングも簡単になります。

于 2012-06-28T05:08:13.370 に答える
3

JavaScript 操作後に DOM がどのように見えるかを正しく表現するには、実際に JavaScript を実行する必要があります。これは、javascript エンジンとドキュメントの (テキスト/マークアップではなく) DOM 表現 (通常はブラウザー) を備えたものによって行う必要があります。

于 2012-06-15T08:50:04.443 に答える