Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: novato04 en 26 Julio 2014, 03:37 am



Título: obtener nombres de peliculas de una pagina con Python ? ayuda :)
Publicado por: novato04 en 26 Julio 2014, 03:37 am
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
  1. <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


Título: Re: obtener nombres de peliculas de una pagina con Python ? ayuda :)
Publicado por: engel lex en 26 Julio 2014, 03:45 am
no se python, pero las regex (expresiones regulares) te pueden ayudar... aquí documentacion (https://docs.python.org/2/library/re.html)

si no, con find() (http://www.tutorialspoint.com/python/string_find.htm) probablemente te sirva...

y si realmente lo quieres más fácil, un html parser (https://docs.python.org/2/library/htmlparser.html) debería hacer el 90% del trabajo por ti


Título: Re: obtener nombres de peliculas de una pagina con Python ? ayuda :)
Publicado por: novato04 en 26 Julio 2014, 04:14 am
 :( me darian un ejemplo


Título: Re: obtener nombres de peliculas de una pagina con Python ? ayuda :)
Publicado por: engel lex en 26 Julio 2014, 04:32 am
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


Título: Re: obtener nombres de peliculas de una pagina con Python ? ayuda :)
Publicado por: novato04 en 26 Julio 2014, 04:38 am
:-( esque tampoco se python

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


Título: Re: obtener nombres de peliculas de una pagina con Python ? ayuda :)
Publicado por: Eleкtro en 26 Julio 2014, 04:50 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
  1. import os, time, re
  2.  
  3. String     = '<div class="nombre-pelicula"><p>Cadena perpetua</p></div>'
  4. expression = '.*<p>(.*)<\/p>.*' # Paragraph tag
  5. RegExComp  = re.compile(expression, re.IGNORECASE)
  6. RegExMatch = RegExComp.match(String).group(1)
  7.  
  8. print RegExMatch
  9.  
  10. time.sleep(5)

Saludos.


Título: Re: obtener nombres de peliculas de una pagina con Python ? ayuda :)
Publicado por: novato04 en 26 Julio 2014, 05:52 am
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
  1. import os, time, re
  2.  
  3. String     = '<div class="nombre-pelicula"><p>Cadena perpetua</p></div>'
  4. expression = '.*<p>(.*)<\/p>.*' # Paragraph tag
  5. RegExComp  = re.compile(expression, re.IGNORECASE)
  6. RegExMatch = RegExComp.match(String).group(1)
  7.  
  8. print RegExMatch
  9.  
  10. time.sleep(5)

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


Título: Re: obtener nombres de peliculas de una pagina con Python ? ayuda :)
Publicado por: engel lex en 26 Julio 2014, 05:56 am
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


Título: Re: obtener nombres de peliculas de una pagina con Python ? ayuda :)
Publicado por: asdexiva en 10 Agosto 2014, 03:23 am
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
Código:
#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
(http://3.bp.blogspot.com/-gDDG43oj08g/U-bJGZS_9WI/AAAAAAAAAKM/zrP7Ijv9uzc/s1600/resultado.JPG)

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


Título: Re: obtener nombres de peliculas de una pagina con Python ? ayuda :)
Publicado por: engel lex en 10 Agosto 2014, 10:18 am
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...


Título: Re:
Publicado por: ivancea96 en 10 Agosto 2014, 12:29 pm
Ya que no sabes Python, a lo mejor te interesa hacer eso en un lenguaje que sí sepas, y luego cuando aprendas Python, traducirlo :o


Título: Re: obtener nombres de peliculas de una pagina con Python ? ayuda :)
Publicado por: Eleкtro en 10 Agosto 2014, 13:10 pm
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...

Buenas

Me gustaría aclarar que NO está prohibido entregar códigos completos (trabajos echos, por así decirlo), cualquier tipo de ayuda es bienvenida ya sea un pequeño código o una aplicación entera con su código fuente, lo que está más o menos prohibido es pedir el trabajo echo (al pedir que los demás te hagan todo el trabajo se estará inflingiendo otro tipo de normas, por ende...).

Estás son dos normas muy importantes que deben tener en cuenta al formular preguntas:
Cita de: http://foro.elhacker.net/scripting/normas_del_tablon_leer_antes_de_postear-t201567.0.html
• Buscar información en el buscador del foro y en los motores de búsqueda antes de formular una pregunta.
• Se pregunta por conceptos abstractos. Aquí no estamos para hacerle el trabajo a nadie

PD: Gracias por colaborar en el foro, pero proporcionar código no es motivo para sancionar a un usuario.

Saludos!


Título: Re: obtener nombres de peliculas de una pagina con Python ? ayuda :)
Publicado por: asdexiva en 10 Agosto 2014, 18:25 pm
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...
al contrario dandole este codigo le estoy ayudando a aprender puede estudiar este codigo y podria aprender mas que leyendo o haciendo todo teorico


Título: Re: obtener nombres de peliculas de una pagina con Python ? ayuda :)
Publicado por: engel lex en 10 Agosto 2014, 19:32 pm
gracias por sacarme de duda Eleкtro ya se que no está prohibido :P

al contrario dandole este codigo le estoy ayudando a aprender puede estudiar este codigo y podria aprender mas que leyendo o haciendo todo teorico

no se, no creo... la mayor parte de las veces que he visto que se le da el codigo listo a alguien normalmente su siguiente pregunta es como hacer otra cosa (y no qué hace el codigo o donde buscar referencias) :s

pero ya :P dejo de desvirtuar el tema! :P disculpen por los inconvenientes!