Python - Acceder a datos de una web externa

 
Vista:
sin imagen de perfil

Acceder a datos de una web externa

Publicado por Francisco José (6 intervenciones) el 30/03/2017 21:26:35
Hola, estoy intentando hacer una aplicación web para catalogar peliculas. Una de las cosas que quiero es sacar la información de la pelicula de distintas páginas web. De momento estoy usando la libreria lxml con el siguiente código.

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
url = "http://www.filmaffinity.com/es/film454394.html" # Es un ejemplo de url
 
pagina_xml = html.parse(url)
pelicula = {}
 
# Titulo pelicula
pelicula['titulo'] = pagina_xml.xpath('//h1[@id="main-title"]/span/text()')[0]
ficha_pelicula = pagina_xml.xpath('//div[@id="left-column"]/dl/dt')
 
for i in range(len(ficha_pelicula)):
 
    # Titulo original
    if ficha_pelicula[i].text == u'Título original':
        pelicula['titulo_original'] =ficha_pelicula[i].getnext().text.strip()
 
    # Año
    if ficha_pelicula[i].text == u'Año':
        pelicula['anio'] = ficha_pelicula[i].getnext().text.strip()
 
    # Duración
    if ficha_pelicula[i].text == u'Duración':
        pelicula['duracion'] = ficha_pelicula[i].getnext().text.strip().replace(" min.", '')
 
    # Sinopsis
    if ficha_pelicula[i].text == u'Sinopsis':
        pelicula['sinopsis'] = ficha_pelicula[i].getnext().text.strip()
 
print(pelicula)

Con este código consigo acceder a los datos y guardarlos. El problema que tengo es que no me da problemas de codificación (tildes y la ñ) mientras el título de la película no lleve un caracter especial. Es decir si el titulo es "El bar", consigo guardar todos los datos con sus vocales acentuadas y demas caracteres mas especiales. Pero si el título fuera Plácido tendría problemas con la codificacíon. Le he dado vueltas y no se porque falla. Tengo otro metodo, este que accedo a la url del buscador de filmaffinity, donde al introducir un titulo en un formulario me da una busqueda con los titulos que concuerdan y aquí tambien me falla la codificación.
Entendería que me fallará siempre por no tener algo bien configurado, pero no entiendo porque una dirección me falla solo porque el tíulo de la película pueda llevar tilde o no.
A ver si alguien que ha usado esta librería me da una explicación o sino una alternativa. Uso el lxml por el xpath que me es muy comodo a la hora de acceder a los distintos elementos de la página.
Un saludo y espero respuestas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder