2012-06-13 120 views
1

我想从汽车博客Jalopnik得到一些评论。它最初没有与网页一起出现,而是使用一些Javascript来获取评论。你只能得到特色评论。我需要所有的评论,所以我会点击“全部”(在“精选”和“开始新的讨论”之间)并获得它们。点击与Selenium的Firefox的Javascript链接

为了实现这个功能,我试着学习Selenium。我从Pypi修改了their script,猜测点击链接的代码是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() 
+0

更新我的代码与Python版本,如果你仍然对它感兴趣:) –

回答

1

使用Firefox和Firebug插件,我浏览到http://jalopnik.com/5912009/prius-driver-beat-up-after-taking-out-two-bikers

然后我打开Firebug控制台并单击ALL;它有意地显示了一个单一的AJAX呼叫http://jalopnik.com/index.php?op=threadlist&post_id=5912009&mode=all&page=0&repliesmode=hide&nouser=true&selected_thread=null

在新窗口中打开该网址可以获得您正在寻找的评论源。更一般地说,如果您将相应的文章ID替换为该网址,那么您应该能够在没有Selenium的情况下自动执行此过程。