obtener nombres de peliculas de una pagina con Python ? ayuda :)

Iniciado por novato04, 26 Julio 2014, 03:37 AM

0 Miembros y 1 Visitante están viendo este tema.

novato04

Como podria hacer para obtener los nombres de las peliculas
de esta pagina http://cinevk.com con el lenguaje python se puede hacer ?
y despues que se guarde en un archivo de texto.txt en Windows

los tag que tienen las peliculas son las <p>

Código (html4strict) [Seleccionar]
<div class="nombre-pelicula"><p>Cadena perpetua</p></div>

todo el resultado quedaria en un archivo texto.txt

Asi  
;D ;D

Cadena perpetua
Lo que el viento se llevó
Los siete samurais
Pulp fiction
Testigo de cargo
Ciudadano Kane
Casablanca
2001: Una odisea del espacio
El caballero oscuro
Lawrence de Arabia

engel lex

no se python, pero las regex (expresiones regulares) te pueden ayudar... aquí documentacion

si no, con find() probablemente te sirva...

y si realmente lo quieres más fácil, un html parser debería hacer el 90% del trabajo por ti
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

novato04


engel lex

no se nada de python XD por eso te dejé los links de la documentación donde hay ejemplos, métete a el ulitmo link y revisa los ejemplos
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

novato04

:-( esque tampoco se python

Ay algun maestro de python que me ayude con esto  ;D ;D ;D ;D

Eleкtro

#5
Cita de: novato04 en 26 Julio 2014, 04:38 AM
:-( esque tampoco se python

. . .

en fin, siento sermonearte tanto pero deberías cojer un libro y leer, aquí te ayudaremos en lo que sea posible, pero ser novato no es una razón de peso para pedirlo todo echo en Batch, Ruby, Python, y etc...

Por otro lado, has dado un salto en la dirección correcta al dejar atrás la utilización de Batch,
pero dado el (nulo) nivel de conocimiento del que dispones en Python, te sugiero utilizar las expresiones regulares ya que es algo a lo que puedes recurrir en cualquier otro lenguaje sin necesidad de realizar demasiados cambios entre uno y otro.

Ejemplo:

Código (python) [Seleccionar]
import os, time, re

String     = '<div class="nombre-pelicula"><p>Cadena perpetua</p></div>'
expression = '.*<p>(.*)<\/p>.*' # Paragraph tag
RegExComp  = re.compile(expression, re.IGNORECASE)
RegExMatch = RegExComp.match(String).group(1)

print RegExMatch

time.sleep(5)


Saludos.








novato04

Esta bien me pondre a estudia mas sobre python para haci hacer proyectos  :)

Pero el script que mandaste no entra en la pagina http://www.cinevk.com

Código (python) [Seleccionar]
import os, time, re

String     = '<div class="nombre-pelicula"><p>Cadena perpetua</p></div>'
expression = '.*<p>(.*)<\/p>.*' # Paragraph tag
RegExComp  = re.compile(expression, re.IGNORECASE)
RegExMatch = RegExComp.match(String).group(1)

print RegExMatch

time.sleep(5)


Se podria entrar en esa pagina y encontrar todos los nombres de la peliculas
Y guardalo en archivo de txt ?

engel lex

realmente quieres toda la explicación (o código) de como abrir un url, acceder al contenido, parsearlo, abrir un archivo y guardarlo? -.-


has algo... ve a google, busca un tutorial de python, y si tienes alguna duda en un punto especifico de un tema puntual vienes y la preguntas, si?

o si no, hasle esta pregunta a google, este proyecto lo deben haber hecho miles antes que tu
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

asdexiva

#8
vamos no ay que ser tan malos XD
mira espero y te sirva de motivacion ,python es muy facil tienes mucha documentacion en ingles y español, mas en ingles pero no necesitas saber mucho ingles solo lo basico

llevo 5 semanas con este lenguaje y la verdad me a sorprendido demasiado puedes hacer practicamente cualquier cosa y es muy facil la sintaxis.

la verdad es que si es cierto lo que dicen los compañeros de arriba no pidas que te lo hagan trata de avanzar algo y talvez te ayuden .

te recomiendo que entres a pythonya asi buscalo en google te enseñan de una forma interactiva y no necesitas descargar python  aprendiendo eso basico casi puedes hacer cualquier cosa

ojo tampoco soy el amo de python tampoco se algunas cosillas :D pero leyendo se aprende :D

aca lo que pides espero y te motive hacer mas cosas en python :D
ojo necesitas descargar la libreria mechanize y beautifulsoup supongo que usaras windows te bajas este programa para instalar librerias y lo instalas
https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11.win32-py2.7.exe#md5=57e1e64f6b7c7f1d2eddfc9746bbaf20
una vez descargado entras a inicio ejecutar cmd y en cmd buscas el directorio donde tengas guardado python o escribes esto Cd\Python27\Scripts una vez ayas puesto esto escribes easy_install mechanize una vez que se complete de instalar no cierres nada y escribes easy_install beautifulsoup4 y listo procedes con el codigo

ojo el codigo no estan largo lo que esta con # son comentarios no afecta en nada si los borras solo te explica que hace cada cosa
#se importa la libreria mechanize
#mechanize es un emulador de navegador
# se importa la libreria beautifulsoup por que bs4 por que es la version 4 de beautiful
#beautifulsoup es un parseador html para buscar divs y cosas por el estilo que estan en el codigo fuente de la pagina
import mechanize
from bs4 import BeautifulSoup


#declarar el navegador
br = mechanize.Browser()


#se almacena la url de donde extraeremos los datos
url='http://www.cinevk.com/'

#se desactivan los robots de la pagina para que la pagina no piense que somos un bot
br.set_handle_robots(False)
#se agrega el header para que la pagina piense que entramos desde un mozilla linux
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]

#se abre la url de donde sacaremos esos datos que pides
r = br.open(url)

#se declara una variable con el nombre soup y le decimos que BeautifulSoup es la respuesta de la pagina y que la lea ,la respuesta vendria siendo el codigo html de la pagina
soup = BeautifulSoup(br.response().read())

#con un for le decimos al modulo soup que busque todas las etiquetas <p> y </p>
#recuerda que soup es una variable que almacena al modulo beautifulsoup  
for resul in soup.findAll('p'):
   
# si tu trataras de imprimir resul asi directo del for te saldrian todos los titulos asi <p>ice age 1</p>
#para eso existe el metodo join ,por cierto gracias a Elektro y a Godor por decirme de este metodo jaja
#lo que sucede aqui es que con un print impremes el resultado supongo que si saves para que sirve un print
#bueno con un join tomas al resul del for y buscas con findall todo lo que no sea etiquetas html  y lo impremes con print
   print ''.join(resul.findAll(text=True))

aqui resultado


si alguien quisiera corregirme en algo son libres de hacerlo tampoco soy una eminencia jaja

engel lex

creo que va contra las reglas del foro entregar el código listo (no se si aplica a este sub foro, creo que no ya que Eleкtro creo que lo hace) pero tu sabes por todo el asunto que este es un lugar para aprender y eso...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.