1

私は車のブログ、Jalopnikからいくつかのコメントを得ようとしています。最初はWebページに付属していませんが、代わりにコメントがJavascriptで取得されます。注目のコメントのみを取得します。すべてのコメントが必要なので、[すべて]([注目]と[新しいディスカッションの開始]の間)をクリックして取得します。

これを自動化するために、私はSeleniumを学習してみました。リンクをクリックするためのコードがとであると推測して、Pypiからスクリプトを変更しました。「すべて」ボタン(すべてのコメントを表示)が押されたようには見えません。link.click()link = broswer.find_element_byxpath(...)

最終的には、そのバージョンのHTMLをダウンロードして解析したいと思います。

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
import time

browser = webdriver.Firefox() # Get local session of firefox
browser.get("http://jalopnik.com/5912009/prius-driver-beat-up-after-taking-out-two-bikers/") # Load page
time.sleep(0.2)

link = browser.find_element_by_xpath("//a[@class='tc cn_showall']")
link.click()
browser.save_screenshot('screenie.png')
browser.close()
4

1 に答える 1

1

FirefoxとFirebugプラグインを使用して、を参照しましたhttp://jalopnik.com/5912009/prius-driver-beat-up-after-taking-out-two-bikers

次に、Firebugコンソールを開き、[すべて]をクリックしました。それは必然的に単一のAJAX呼び出しを示しましたhttp://jalopnik.com/index.php?op=threadlist&post_id=5912009&mode=all&page=0&repliesmode=hide&nouser=true&selected_thread=null

そのURLを新しいウィンドウで開くと、探しているコメントフィードが表示されます。

より一般的には、適切な記事IDをそのURLに置き換えると、Seleniumなしでプロセスを自動化できるはずです。

于 2012-06-13T16:43:56.290 に答える