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



我这里有一个python网络抓取工具脚本,我需要通过测试与网站的连接来验证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!'

也许这个片段可以帮助您理解为什么在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'

以下内容应该会对您有所帮助-

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)
    [...]

相关内容

最新更新