2

Javascript によって作成されたページ内のすべての HTML を取得して BeautifulSoup に渡す最良の方法は何ですか?

私は現在使用しています:

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys

from BeautifulSoup import BeautifulSoup

browser = webdriver.Firefox()
browser.get("http://www.yahoo.co.uk")
html = browser.find_elements_by_id("html")

ただし、「html」は常に空のリストです。私は何を間違っていますか?

4

3 に答える 3

4

ページ ソースを Selenium から Beautiful Soup に渡す正しい方法は次のとおりです。

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys

from BeautifulSoup import BeautifulSoup

browser = webdriver.Firefox()
browser.get("http://www.yahoo.co.uk")
html_source = browser.page_source
html = BeautifulSoup(html_source)

このように、ブラウザーはページをロードし、完全な html ソースを抽出して BeautifulSoup に渡します。結果は、他の Beautiful Soup オブジェクトと同様に解析できます。

于 2012-10-15T20:51:30.440 に答える
2

HTML は ID ではありません。代わりに次のようにする必要があります。

html = browser.find_elements_by_tag_name("html")

htmlはタグなので。

最初に行った検索では、id が「html」に設定されているすべての要素が返されます。返される要素の例:

<p id="html">Lorem ipsum</p>

その要素の ID は「html」で、タグ名は「p」です。

于 2012-10-13T12:23:24.513 に答える
2

次のようなものを使用することもできます

html_source = browser.page_source

これは、完全なソースを収集するため、または「ページ内のすべての html を取得する」ためだけに、Web ドライバーが提供する関数呼び出しです。

于 2012-10-13T13:43:33.540 に答える