Enlace HTML analizando usando BeautifulSoup

Aquí está mi código de Python que estoy usando para extraer el HTML específico de los enlaces de página que estoy enviando como parámetro. Estoy usando BeautifulSoup . ¡Este código funciona bien para algunas veces y otras veces se atasca!

import urllib from bs4 import BeautifulSoup rawHtml = '' url = r'http://iasexamportal.com/civilservices/tag/voice-notes?page=' for i in range(1, 49): #iterate url and capture content sock = urllib.urlopen(url+ str(i)) html = sock.read() sock.close() rawHtml += html print i 

Aquí estoy imprimiendo la variable de bucle para averiguar dónde se está atascando. Me muestra que se está atascando al azar en cualquiera de las secuencias de bucle.

 soup = BeautifulSoup(rawHtml, 'html.parser') t='' for link in soup.find_all('a'): t += str(link.get('href')) + "
" #t += str(link) + "
" f = open("Link.txt", 'w+') f.write(t) f.close()

¿Cuál podría ser el posible problema? ¿Es el problema con la configuración del zócalo o algún otro problema?

Este es el error que tengo. Revisé estos enlaces – python-gaierror-errno-11004 , ioerror -errno-socket-error-errno-11004-getaddrinfo-error para la solución. Pero no lo encontré muy útil.

  d:\python>python ext.py Traceback (most recent call last): File "ext.py", line 8, in  sock = urllib.urlopen(url+ str(i)) File "d:\python\lib\urllib.py", line 87, in urlopen return opener.open(url) File "d:\python\lib\urllib.py", line 213, in open return getattr(self, name)(url) File "d:\python\lib\urllib.py", line 350, in open_http h.endheaders(data) File "d:\python\lib\httplib.py", line 1049, in endheaders self._send_output(message_body) File "d:\python\lib\httplib.py", line 893, in _send_output self.send(msg) File "d:\python\lib\httplib.py", line 855, in send self.connect() File "d:\python\lib\httplib.py", line 832, in connect self.timeout, self.source_address) File "d:\python\lib\socket.py", line 557, in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): IOError: [Errno socket error] [Errno 11004] getaddrinfo failed 

Funciona perfectamente bien cuando lo ejecuto en mi computadora portátil personal. Pero está dando error cuando lo estoy ejecutando en Office Desktop. Además, mi versión de Python es 2.7. Espero que esta información ayude.

Finalmente, chicos …. ¡Funcionó! El mismo script funcionó cuando revisé otras PC’s también. Probablemente el problema se debió a la configuración del servidor de seguridad o la configuración del proxy del escritorio de mi oficina. que estaba bloqueando este sitio web.