2013-05-16 43 views
4

我们正在等待我姐姐的结果。正如它发生的,很多,与印度政府。服务器速度慢,流量很大。如何编写一个python脚本继续尝试一个网页,直到它打开

所以,我想写一个python程序,继续尝试,直到服务器响应Http请求。但是程序:

import urllib 
i=1 
f = open("C:/Users/DELL/Desktop/neetpg.html",'w') 
while(True): 
    try: 
     page = urllib.urlopen("http://www.nbe.gov.in/asr/neet_pdf/") 
     print "Done" 
     break 
    except: 
     print i 
     i += 1 
     continue 
f.write(page.read()) 

print "check" 

但是程序运行不正常。我试图用facebook.com替换网址,它仍然打印出数字。

此外,我想要的是,如果服务器确实响应,网页加载js和css文件以及html文件,所有这些应该在浏览器中打开。

我还注意到一个暗示从http://docs.python.org/2/library/webbrowser.html 和改变程序:

import webbrowser 
i=1 
while(True): 
    try: 
     webbrowser.open("http://www.nbe.gov.in/asr/neet_pdf/") 
     print "Done" 
     break 
    except: 
     print i 
     i += 1 
     continue 
print "check" 

但所有这一切呢,是打开了我的默认浏览器的新窗口,并设置网址是什么给出,和“打开它”。同时,在Python shell中打印完成并检查。

未收到服务器响应的网络浏览器显示could not connect to www.nbe.gov.in

如何实现这一目标?

编辑:刚才看到facebook.com脚本毕竟工作。它花了大约15次尝试,然后它发生了。 .html文件写入正确。所有的CSS和JS也可能。

为什么如此,它花了这么多的尝试,而我可以很容易地从浏览器打开Facebook.com。

+0

ooo ..库升级。顺便说一句,那里有更好的东西吗? – tMJ

+0

嗯。奇怪。该代码适用于我的机器 – Lennart

+0

它的工作原理?网站是否开放?什么郡? :D 可以查看我们的结果吗? – tMJ

回答

2

selenium一试。

想法是继续打开页面,直到驱动程序看到正确的标题。如果它在那里,只是打破循环,并打开页面:

from selenium import webdriver 


driver = webdriver.Firefox() 
while True: 
    driver.get("http://www.nbe.gov.in/asr/neet_pdf/") 

    if 'NEET-PG' in driver.title: 
     break 

希望有所帮助。

+0

硒?我可以从哪里下载? – tMJ

+0

只需阅读[文档](http://selenium-python.readthedocs.org/en/latest/installation.html),应该易于安装。 – alecxe

+1

@TehTris这不是什么隐含的等待。 –

相关问题