Je suis juste en train de jouer et j'essaie d'attraper des informations sur des sites web. Malheureusement, avec le code suivant :
import sys
import socket
import re
from urlparse import urlsplit
url = urlsplit(sys.argv[1])
sock = socket.socket()
sock.connect((url[0] + '://' + url[1],80))
path = url[2]
if not path:
path = '/'
print path
sock.send('GET ' + path + ' HTTP/1.1\r\n'
+ 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/0.3.154.9 Safari/525.19\r\n'
+ 'Accept: */*\r\n'
+ 'Accept-Language: en-US,en\r\n'
+ 'Accept-Charset: ISO-8859-1,*,utf-8\r\n'
+ 'Host: 68.33.143.182\r\n'
+ 'Connection: Keep-alive\r\n'
+ '\r\n')
Je reçois l'erreur suivante :
Traceback (dernier appel le plus récent) :
Fichier " D:\Development\Python\PyCrawler\PyCrawler.py ", ligne 10, dans sock.connect((url[0] + '://' + url[1],80)) Fichier "", ligne 1, in connect socket.gaierror : (11001, 'getaddrinfo failed')
La seule fois où je n'obtiens pas d'erreur est si l'url passée est http://www.reddit.com . Toutes les autres url que j'ai essayées donnent lieu à une erreur de type socket.gaierror. Quelqu'un peut-il expliquer cela ? Et éventuellement donner une solution ?