如何编写 python 脚本来不断尝试网页直到打开

tMJ*_*tMJ 6 python urllib python-2.7 python-webbrowser

我们正在等待姐姐的结果。印度政府也经常遇到这种情况。服务器很慢,流量很大。

于是,我想到写一个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"
Run Code Online (Sandbox Code Playgroud)

但该程序无法正常运行。我尝试将 url 替换为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"
Run Code Online (Sandbox Code Playgroud)

但所有这一切都是在我的默认网络浏览器中打开一个新窗口,并将网址设置为给定的内容,然后“打开它”。同时,在 python shell 上打印 Done 和 Check。

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

如何实现这一目标?

编辑:刚刚看到 facebook.com 脚本毕竟有效。大约尝试了 15 次,然后事情就发生了。文件.html写入正确。包含所有 CSS,可能还有 JS。

为什么会这样,尝试了这么多次,而我却可以轻松地从浏览器中打开facebook.com。

ale*_*cxe 3

尝试一下

这个想法是不断打开页面,直到驾驶员看到正确的标题。如果存在,只需中断循环并保持页面打开:

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
Run Code Online (Sandbox Code Playgroud)

希望有帮助。