Python httplib.InvalidURL:非数字端口:
我正在尝试执行一个脚本来检查是否存在多个URL:Python httplib.InvalidURL:非数字端口:,python,file,Python,File,我正在尝试执行一个脚本来检查是否存在多个URL: import httplib with open('urls.txt') as urls: for url in urls: connection = httplib.HTTPConnection(url) connection.request("GET") response = connection.getresponse() if response.status ==
import httplib
with open('urls.txt') as urls:
for url in urls:
connection = httplib.HTTPConnection(url)
connection.request("GET")
response = connection.getresponse()
if response.status == 200:
print '[{}]: '.format(url), "Up!"
但我有一个错误:
Traceback (most recent call last):
File "test.py", line 5, in <module>
connection = httplib.HTTPConnection(url)
File "/usr/lib/python2.7/httplib.py", line 693, in __init__
self._set_hostport(host, port)
File "/usr/lib/python2.7/httplib.py", line 721, in _set_hostport
raise InvalidURL("nonnumeric port: '%s'" % host[i+1:])
httplib.InvalidURL: nonnumeric port: '//globo.com/galeria/amazonas/a.html
回溯(最近一次呼叫最后一次):
文件“test.py”,第5行,在
connection=httplib.HTTPConnection(url)
文件“/usr/lib/python2.7/httplib.py”,第693行,在__
自身设置主机端口(主机,端口)
文件“/usr/lib/python2.7/httplib.py”,第721行,在主机端口中
引发InvalidURL(“非数字端口:“%s]”%host[i+1:])
httplib.InvalidURL:非数字端口:'//globo.com/galeria/amazonas/a.html
有什么问题吗?
httplib.HttpConnection
在其构造函数中获取远程URL的主机
和端口
,而不是整个URL
对于您的用例,更容易使用urllib2.urlopen
import urllib2
with open('urls.txt') as urls:
for url in urls:
try:
r = urllib2.urlopen(url)
except urllib2.URLError as e:
r = e
if r.code in (200, 401):
print '[{}]: '.format(url), "Up!"
elif r.code == 404:
print '[{}]: '.format(url), "Not Found!"
在这里,这可能是一个简单的解决方案
connection = httplib.HTTPConnection(url)
您使用的是httpconnection
,因此不需要像这样给出url,而是需要给出url
简而言之,从URL中删除http://
和https://
,因为httplib
将:
视为端口号,并且端口号必须是数字
希望这有帮助 非数字端口:
解决方案:
http.client.HTTPSConnection(“api.cognitive.microsofttranslator.com”)
从服务URL或端点中删除“https://”,它就会工作
您的
url.txt文件的格式是什么?有“http:”和“https:”url.Hmm!一些url得到了HTTP错误401:Unauthorized
和脚本停止,如何修复?请参阅编辑:urlopen
在非“成功”响应上引发URLError
s,但URLError
也包含HTTP状态代码,因此我们可以执行上述操作。该死,现在返回:namererror:name'urleror'未定义
但一切正常吗“-”。hmmm!还有另一个问题:如果r.code==200或401:print'[{}]:'.format(url),“Up!”否则r.code==404:print'[{}]:'.format(url),“Not Found!”
但我得到了一个错误:缩进错误:意外缩进
怎么了?如果r.code==200或401:这不是进行多次等式检查的方式。你应该这样做:如果r.code在(200401)中: