如何在Selenium中执行JavaScript并获取数据?

时间:2016-11-13 05:25:06

标签: javascript python parsing selenium

您好,谢谢您的时间。

我的目的是制作解析器,跟踪数百个站点并检查站点是否有模块(特殊插件)。主要问题是,唯一的方法是确保它是网站的午餐JavaScript。

enter image description here

所以,我不知道如何午餐javascript和grap数据

例如:

driver = webdriver.Chrome('D:\chromedriver_win32\chromedriver')    
driver.get("https://lieman.com/")
tag = driver.execute_script("document.getElementsByClassName('arsenal_title')")
driver.close()
print(tag)

标签打印无。

有人可以帮助我接收数据或告诉我其他方式来检查javascipt

===

def main():
    driver = webdriver.Chrome('D:\chromedriver_win32\chromedriver')
    driver.get("http://redhelper.ru/")
    morn = driver.execute_script("return redhlpSettings()")
    driver.close()
    print(morn)

if __name__ == '__main__':
    main()

1 个答案:

答案 0 :(得分:1)

您不需要执行javascript,而是使用find_elements_by_class_name(class_name)find_element_by_class_name(class_name)

tags = driver.find_elements_by_class_name('arsenal_title')

OR

tag = driver.find_element_by_class_name('arsenal_title')

如果您出于其他原因需要使用execute_script,并希望获得表达式的值,则需要在javascript端返回

tags = driver.execute_script("return document.getElementsByClassName('arsenal_title')")

<强>更新

替换以下行:

morn = driver.execute_script("return redhlpSettings()")

使用:

morn = driver.execute_script("return redhlpSettings")

因为redhlpSettings不是函数。您将看到javascript中的对象被转换为python中的字典对象。