2016-12-06 9 views
0

Я хочу получить статус Url для сайтов с кодом ниже. Для одного веб-сайта (webscraper.io) у меня возникла ошибка. Мой сценарий:httplib error on socket.gaierror:

import httplib 
url = "http://webscraper.io/" 
if 'http' in url: 
    url = url.replace('http://', '').strip() 
conn = httplib.HTTPConnection(url) 
conn.request("GET",'') 
r1 = conn.getresponse() 
print 'r1.Status code=', r1.status 

я получил следующие ошибки:

Traceback (most recent call last): 
File "TestSatusline.py", line 23, in <module> 
    conn.request("GET",'') 
File "/usr/lib/python2.7/httplib.py", line 1017, in request 
    self._send_request(method, url, body, headers) 
File "/usr/lib/python2.7/httplib.py", line 1051, in _send_request 
    self.endheaders(body) 
File "/usr/lib/python2.7/httplib.py", line 1013, in endheaders 
    self._send_output(message_body) 
File "/usr/lib/python2.7/httplib.py", line 864, in _send_output 
    self.send(msg) 
File "/usr/lib/python2.7/httplib.py", line 826, in send 
    self.connect() 
File "/usr/lib/python2.7/httplib.py", line 807, in connect 
    self.timeout, self.source_address) 
File "/usr/lib/python2.7/socket.py", line 553, in create_connection 
    for res in getaddrinfo(host, port, 0, SOCK_STREAM): 
socket.gaierror: [Errno -2] Name or service not known 

ли кто-нибудь имеет какие-либо идеи?

благодаря

ответ

0

после

if 'http' in url: 
    url = url.replace('http://', '').strip() 

в вашем коде, гиперссылка является webscraper.io/, он должен быть webscraper.io

использование urlparse

import httplib 
import urlparse 

url = "http://webscraper.io/" 
o = urlparse.urlparse(url) 
conn = httplib.HTTPConnection(o.netloc) 
conn.request("GET",'') 
r1 = conn.getresponse() 
print 'r1.Status code=', r1.status 

выход

r1.Status code= 200 

Вы можете взглянуть на запросы. http://docs.python-requests.org/en/master/