selenium 如何使用python在一个网页上触发多个javascript事件?

kxxlusnw  于 2023-01-05  发布在  Python
关注(0)|答案(1)|浏览(120)

I am webscraping Glassdoor.com for company reviews using Python.
目前,我使用Beautiful Soup和grequests。这对我需要的所有字段都很好,除了"给管理层的建议"部分,它只在按下Continue Reading按钮时加载。请参见下面this page of reviews的示例:
continue reading buttonexpanded review
据我所知,URL没有任何变化,但在控制台中触发了一个JS click-event:Event: EiReviews: Click [continueReading-71858088]
我在网上找到了一个selenium webdriver的教程,比如this one,我写了下面的代码:

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome (executable_path="C:\\chromedriver.exe")
driver.get("https://www.glassdoor.com/Reviews/Alteryx-Reviews-E351220.htm")

btn = driver.find_element(By.CLASS_NAME, "v2__EIReviewDetailsV2__continueReading").click()
driver.execute_script ("arguments[0].click();",btn)

我需要的东西,规模更好,因为这需要~20秒打开 chrome ,并点击一个单一的按钮。我需要能够点击页面上的每一个"继续阅读"按钮,因为我的最终目标是刮每一个审查~1,000家公司。

3ks5zfa0

3ks5zfa01#

通过查看页面的HTML,您可以注意到在<div id="Container">对象之前,有一个以window.appCache={....开头的脚本对象,它包含字典格式的完整评论,例如,它包含单击Continue阅读时出现的文本

"summary":"Great place to work, been here 4+ years",
"summaryOriginal":null,"advice":"Don't rush too finish a project"

相关问题