Código de Python - Clase para leer el contenido de una pagina web utilizando httplib

Imágen de perfil

Clase para leer el contenido de una pagina web utilizando httplibgráfica de visualizaciones


Python

estrellaestrellaestrellaestrellaestrella(2)
Publicado el 10 de Marzo del 2011 por Xavi
8.190 visualizaciones desde el 10 de Marzo del 2011. Una media de 28 por semana
Clase de python, que permite descargar una pagina web de internet mediante las librerias httplib y urlparse. Nos devuelve el contenido de la pagina y la cabecera de la misma entre otras cosas.

Versión 1
estrellaestrellaestrellaestrellaestrella(2)

Publicado el 10 de Marzo del 2011gráfica de visualizaciones de la versión: Versión 1
8.191 visualizaciones desde el 10 de Marzo del 2011. Una media de 28 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
"""
Clase para leer el contenido de una pagina web.

Los valores que contiene son:
	self.status		contiene el estado de la conexion (200, 404, 408, ...)
	self.reason		valor en texto del status
	self.headers	una lista con el resultado de la comunicacion con el servidor
	self.read1		contiene la pagina html

Las funciones que contiene son:
	self.html_connect(self,url)	realiza la conexion con el servidor
	self.html_showStatus(self)	devuelve una tupla con self.status y self.reason
	self.html_read(self)			lee el contenido de la pagina
	self.html_showHTML(self)		devuelve el codigo HTML leido en la funcion html_read
	self.html_close(self)		cierra la conexion
"""
 
import httplib
from urlparse import urlparse
import os,sys
import socket
 
class html(object):
 
	def __init__(self):
		pass
 
	"""
	Funcion que realiza la conexion.
	Tiene que recibir: la url
	"""
	def html_connect(self,url):
		socket.setdefaulttimeout(20)
		try:
			parse=urlparse(url)
			if parse.scheme=="http":
				#self.conn=httplib.HTTPConnection(parse.netloc,timeout=60)
				self.conn=httplib.HTTPConnection(parse.netloc)
			else:
				#self.conn=httplib.HTTPSConnection(parse.netloc,timeout=60)
				self.conn=httplib.HTTPSConnection(parse.netloc)
			if parse.path=="":
				# Si no disponemos de path le ponemos la barra
				path="/"
			elif parse.query:
				# Si disponemos de path y query, realizamos el montaje
				path="%s?%s" % (parse.path,parse.query)
			else:
				# Si solo disponemos de path
				path=parse.path
			self.conn.request("GET",path)
			self.response1=self.conn.getresponse()
			self.status=self.response1.status
			self.reason=self.response1.reason
			self.headers=self.response1.getheaders()
		except socket.error:
			#errno, errstr = sys.exc_info()[:2]
			#if errno == socket.timeout:
				#print "There was a timeout"
			#else:
				#print "There was some other socket error"
			self.status=408
		except:
			self.status=404
 
	"""Muestra el estado"""
	def html_showStatus(self):
		try:
			return self.status, self.reason
		except:
			return ""
 
	"""Lee el contenido"""
	def html_read(self):
		self.read1=self.response1.read()
 
	"""Muestra el contenido"""
	def html_showHTML(self):
		if self.read1:
			return self.read1
		return ""
 
	"""Cierra la conexion"""
	def html_close(self):
		try:
			self.conn.close()
		except:
			pass
 
if __name__=="__main__":
	obj=html()
	if len(os.sys.argv)==3:
		""" Tiene que recibir la pagina a descargar y la opcion 1|2 """
		if os.sys.argv[2]=="1":
			obj.html_connect(os.sys.argv[1])
			print obj.status
		elif os.sys.argv[2]=="2":
			obj.html_connect(os.sys.argv[1])
			obj.html_read()
			print obj.html_showHTML()
	else:
		obj.html_connect("http://www.google.com")
		print obj.html_showStatus()
		print obj.status
		print obj.headers
		if obj.status==200:
			obj.html_read()
			#print obj.html_showHTML()
	obj.html_close()



Comentarios sobre la versión: Versión 1 (2)

martin
29 de Abril del 2011
estrellaestrellaestrellaestrellaestrella
No sirve para nada el script.. no hace nada .. parcea mal los valores..

tuve que tocar un poco el codigo para que llegara a hacer algo poco..

no descarga nada...

saludos
Responder
josue
01 de Diciembre del 2011
estrellaestrellaestrellaestrellaestrella
me marca varios errores
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s2041