您好,谢谢您的时间。
我的目的是制作解析器,跟踪数百个站点并检查站点是否有模块(特殊插件)。主要问题是,唯一的方法是确保它是网站的午餐JavaScript。
所以,我不知道如何午餐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()
答案 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中的字典对象。