python - 使用 Selenium 在 Firefox 上单击 Javascript 链接

标签 python firefox selenium

我正在尝试从汽车博客获取一些评论,Jalopnik 。它最初并不随网页一起提供,而是通过一些 Javascript 检索评论。您只会收到精选评论。我需要所有评论,因此我会单击“全部”(在“精选”和“开始新讨论”之间)并获取它们。

为了自动化此操作,我尝试学习 Selenium。我修改了their script从 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()

最佳答案

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

然后我打开 Firebug 控制台并单击“全部”;它礼貌地显示了对 http://jalopnik.com/index.php?op=threadlist&post_id=5912009&mode=all&page=0&repliesmode=hide&nouser=true&selected_thread=null 的单个 AJAX 调用

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

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

关于python - 使用 Selenium 在 Firefox 上单击 Javascript 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11018796/

相关文章:

python - 字典在 for 循环结束时变为 NoneType

javascript - 断点在使用 Firebug(1.11.2) 的 Firefox (19.0) 中不起作用

html - Firefox 和 Safari 之间的行高差异

python - 不单击所有选项卡并且不循环一次问题

python - Docker:无法从“azure.storage.blob”导入名称 'BlobServiceClient'

python - 计算连续字符

firefox - 使用 ebextensions 配置在 Elastic beanstalk 上安装 Firefox?

页面刷新期间的 selenium.common.exceptions.StaleElementReferenceException

css - CSS 选择器中的 OR 条件

python - 将列表拆分为不同的变量