2012-07-17 108 views
2

我是新来的python,并没有发现任何暗示这可能是容易的事情。强制python http请求刷新

我报废的页面非常简单,但它每2分钟完全更新一次。我设法取消了所有的数据,但问题是,即使程序每隔2分钟运行一次(我已经通过taskeng.exe进行了尝试并在脚本中循环),但它从网站中提取的html似乎每12分钟。为了清楚起见,当我更新时,我所报废的网站有一个时间戳。我的程序将该邮票(以及其他数据)拉出并写入一个csv文件。但是它将相同的数据拉了12分钟,然后突然发现数据到达。所以输出的样子:

16:30, Data1, Data2, Data3 
16:30, Data1, Data2, Data3 
... 
16:30, Data1, Data2, Data3 
16:42, Data1, Data2, Data3 
16:42, Data1, Data2, Data3 

地方,因为它应该是:

16:30, Data1, Data2, Data3 
16:32, Data1, Data2, Data3 
16:34, Data1, Data2, Data3 
16:36, Data1, Data2, Data3 
16:38, Data1, Data2, Data3 
16:40, Data1, Data2, Data3 
16:42, Data1, Data2, Data3 

我觉得这与myside缓存做。我如何强制我的http请求完全刷新或强制python不将其存储在缓存中?

我正在使用BeautifulSoup和机械化。我的代码为http请求如下:

mech = Browser() 

url = "http://myurl.com" 

page = mech.open(url) 

html = page.read() 
soup = BeautifulSoup(html) 

如果它有助于发布我所有的代码,我可以做到这一点。在此先感谢您的任何建议

回答

0

您可以使用更简单的工具,如requests。但如果你真的想坚持机械化,你也可以跳过浏览器()的东西(这可能会引入cookie到你的请求)。检查mechanize docs了解更多详情。

response = mechanize.urlopen("http://foo.bar.com/") 
html = response.read() # or readlines 
+0

谢谢。这个请求模块非常有用。我认为你是对的,机械化以某种方式对cookie做某事。干杯。 – user1532308 2012-07-18 11:45:19