我这里有一个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)
[...]