在执行JavaScript之前获取Selenium页面源

时间:2019-09-18 22:00:07

标签: python selenium selenium-webdriver

我有一种情况,来自HTTP请求的原始页面源代码包含一些我需要捕获的JSON数据-假设<code id="data">{'some':'json'}</code>。但是JavaScript会执行,处理它并从DOM中删除数据,因此我在webdriver.page_source中看不到它。

有什么想法可以捕捉到这个吗?或者至少以某种方式禁用/暂停JavaScript,.get()页面,从source_code中提取我需要的内容,然后重新启用/取消暂停JavaScript?

1 个答案:

答案 0 :(得分:0)

我觉得这有点脏,但是可以用。我需要在第一部分中使用硒。然后,我移交给了请求:

session = requests.Session()
for cookie in self.webdriver.get_cookies():
    session.cookies.set(cookie['name'], cookie['value'])

response = session.get(self.webdriver.current_url).text

并简单地将内容写入临时文件,然后使用硒打开它:

response_file = utils.save_to_temp_file(response, extension='.html')
self.webdriver.get(f'file://{response_file}')`