检查python脚本中的URL输入是否处于活动状态

检查python脚本中的URL输入是否处于活动状态,python,validation,url,Python,Validation,Url,我这里有一个python web抓取工具脚本,我需要通过测试与网站的连接来验证url是否是现有网站。有人能帮我在代码中实现这一点吗 这是我的密码: import sys, urllib while True: try: url= raw_input('Please input address: ') webpage=urllib.urlopen(url) print 'Web address is valid' break

我这里有一个python web抓取工具脚本,我需要通过测试与网站的连接来验证url是否是现有网站。有人能帮我在代码中实现这一点吗

这是我的密码:

import sys, urllib

while True:
    try:
        url= raw_input('Please input address: ')
        webpage=urllib.urlopen(url)
        print 'Web address is valid'
        break
    except:
        print 'No input or wrong url format usage: http://wwww.domainname.com/ '
        print 'Please try again'
def wget(webpage):
        print '[*] Fetching webpage...\n'
        page = webpage.read()
        return page      
def main():
    sys.argv.append(webpage)
    if len(sys.argv) != 2:
        print '[-] Usage: webpage_get URL'
        return
    print wget(sys.argv[1])

if __name__ == '__main__':
    main()
编辑: 我这里有一个代码,是从另一个stackoverflow帖子中提取的。这段代码很有效,我只想将它集成到我的代码中。我试着整合自己,但却出现了错误。谁能帮我做这个? 代码如下:

from urllib2 import Request, urlopen, URLError
req = Request('http://jfvbhsjdfvbs.com')
try:
    response = urlopen(req)
except URLError, e:
    if hasattr(e, 'reason'):
        print 'We failed to reach a server.'
        print 'Reason: ', e.reason
    elif hasattr(e, 'code'):
        print 'The server couldn\'t fulfill the request.'
        print 'Error code: ', e.code
else:
    print 'URL is good!'

以下内容应能帮助您-

visited = []

in while loop - 
in try:
    url= raw_input('Please input address: ')
    if url in visited: 
        print "Already visited. Continue"
    visited.append(url)
    webpage=urllib.urlopen(url)
    [...]

也许这个片段可以帮助您理解为什么在
while
之后执行
main

print 'Checkpoint Alpha'

while True:
    print 'Checkpoint Bravo'
    if raw_input ('x for break: ') == 'x': break

print 'Checkpoint Charlie'

def main():
    print 'Checkpoint Foxtrott'

print 'Checkpoint Delta'

if __name__ == '__main__':
    print 'Checkpoint Echo'
    main()
    print 'Checkpoint Golf'

print 'Checkpoint Hotel'

看起来不错,只是在调用main之前执行了
while True
。我宁愿检查响应代码,看看postyes这就是我需要的,但我不知道如何在我的代码中实现它。所以,如果有人能帮我,我请求帮助this@Hyperboreus您的意思是什么?@user3034404在您的案例1中,python脚本是自上而下执行的。您的
while
及其套件,然后是两个
def
(将函数添加到作用域),然后是可能调用
main
的条件。按照这个顺序,你的
while
首先执行,你的
main
最后执行,以防条件成立。我认为这不是我需要的。我需要一个代码,将检查连接到给定的URL的user@KDawG你可以让军官离开空军,但你不能让空军离开军官。泰利,你好!