使用Selenium点击Firefox上的Javascript链接

时间:2012-06-13 15:56:20

标签: python firefox selenium

我试图从汽车博客Jalopnik上获得一些评论。最初没有网页,而是通过一些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()

1 个答案:

答案 0 :(得分:1)

将Firefox与Firebug插件一起使用,我浏览了http://jalopnik.com/5912009/prius-driver-beat-up-after-taking-out-two-bikers

然后我打开Firebug控制台并点击ALL;它有义务向http://jalopnik.com/index.php?op=threadlist&post_id=5912009&mode=all&page=0&repliesmode=hide&nouser=true&selected_thread=null

展示一个AJAX调用

在新窗口中打开该网址会获取您正在寻找的评论Feed。

更一般地说,如果您将相应的文章ID替换为该URL,您应该能够在没有Selenium的情况下自动执行该过程。