我正在尝试监视页面是否有任何更新。但是,我需要保持相同的会话和 cookie,所以我不能只发送一个全新的请求。
如何在当前请求中检查 HTML 中的更新?页面不仅会更新,还会重定向,但 URL 保持不变。
这是我当前的代码:
import requests
url = 'xxx'
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'
}
response = requests.get(url, headers=headers, allow_redirects=True, config={'keep_alive': True})
def get_status():
html = response.text # this should be the current HTML, not the HTML when I made the initial request
if x in html:
status = "exists"
else:
status = "null"
return status
print(get_status())
编辑:我将使用 while 循环每 5 秒运行一次此函数,以检查状态是否为 =“存在”。
EDIT2:我尝试通过 requests_html 实现它,但我没有得到应有的 cookie:
import requests_html
from requests_html import HTMLSession
session = HTMLSession()
session.headers.update({'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'})
r = session.get('x')
r.html.render(reload=False)
print(r.cookies.get_dict())