我正在使用mechanize浏览器进行一些webscraping并使用以下代码。我意识到在某些情况下我们会继续获得相同的页面,尽管远程页面已经更改。所以我的问题是:
如果是这样,我们如何更改它,或者是否有办法避免缓存(除了每次在webscrape循环中创建浏览器实例)
# put int login detail and submit, return a mechanize.Browser instance
browser = _login()
# main loop
while True:
rsp = browser.open(URL)
html = rsp.read()
感谢
答案 0 :(得分:3)
根据this thread,
Mechanize实例会缓存您访问过的网页,但您可以清除 与agent.history.clear;或防止历史被拯救 设置agent.history.max_size = 0.或者,您可以使用新的Mechanize 完全是一个例子。
特别地,
如果是,当前Mechanize会在会话历史记录中重新使用页面 带有If-Modified-Since标头的请求导致304 Not Modified。
通过文档here,在Python中,以下代码将阻止类似缓存的行为(可搜索的响应):
import mechanize
ua = mechanize.UserAgent()
ua.set_seekable_responses(False)
ua.set_handle_equiv(False)
ua.set_debug_responses(False)
希望能提供一些见解。