Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python httplib.InvalidURL:非数字端口:_Python_File - Fatal编程技术网

Python httplib.InvalidURL:非数字端口:

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 ==

我正在尝试执行一个脚本来检查是否存在多个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 == 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)中: