检查在Python脚本中的URL输入是否有效
我在这里有一个python网站抓取工具脚本,我需要通过测试网站连接来验证它的网址。任何人都可以帮我在我的代码中实现这个吗?检查在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()
编辑: 我这里有一个代码,我从另一个计算器后提取。此代码有效,我只是希望它能够集成到我的代码中。我试图整合自己,但是却得到了错误。任何人都可以帮我做到这一点? 下面的代码:
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)
[...]
我不认为这是我所需要的。我需要一个代码来检查用户连接到给定的URL – user3034404
也许这个片段可以帮助你理解为什么你main
是while
后执行:
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'
+ 1为军事代码的使用:) –
@KDawG你可以把军官从空军,但你不能拿空军走出官员。发现目标! – Hyperboreus
不仅外观漂亮,你在调用main之前执行'while True'。 – Hyperboreus
我宁愿检查响应代码,看看[这](http://stackoverflow.com/questions/1140661/python-get-http-response-code-from-a-url)后 –
是的,这就是我需要但我不知道如何在我的代码中实现它。所以即时通讯寻求帮助,如果任何人都可以帮助我做到这一点 – user3034404