Obtener datos de una pagina web

quique_nach

Buenos días casi tardes...

quería comentar en el foro si alguien podría ayudarme con un problema que tengo.
no tengo ni idea de como podría coger...(de una web tipo alquiler de viviendas) los precios y que se actualicen.

he estado mirando y he encontrado que desde excel y con el cron jobs podría llegar a hacer algo similar, pero no se como podría llegar a hacerlo.

si alguien me ayudara lo agradecería.

Salu2.

LordPython

Supongo que te refieres a "data scraping". Échale un vistazo en don Google.

1 2 respuestas
EnZo

Lo que dice #2 pero basicamente se basan en regexp. Pasate por este post tambien http://www.mediavida.com/foro/dev/expresiones-regulares-ahora-modo-facil-468635

1 1 respuesta
eXtreM3

Con esto http://php.net/manual/es/function.file-get-contents.php puedes obtener todo el código fuente, parséalo con expresiones regulares y tendrás tus precios.

1 respuesta
quique_nach

#4 #3 #2 mil millones de gracias a todos por responder.
Me lo mirare todo.

DarkSoldier

#7 yo cuando he necesitado algo así siempre he usado http://simplehtmldom.sourceforge.net/

hace relativamente poco parsee un foro en phpBB enterito, tengo todo un foro con mas de 20k mensajes en un json xDDD

(aqui si kaoD xD)

1 1 respuesta
PiradoIV

XPath es mil veces mejor que andar con expresiones regulares, incluso hay extensiones para Chrome que te agilizan el proceso :)

3 1 respuesta
Nucklear

#7 Si pero XPath es mas jodido de aprender que Regex xD

2 respuestas
Lecherito

#8 Depende de qué nivel de Regex quieres xDD

1 respuesta
PiradoIV

#8 ni de coña x'DDDD

1 respuesta
Nucklear

#9 #10 Mi recuerdo de cuando trabajé con XPath es ese xD

APOCa

Como comenta #6 con simplehtmldom se puede hacer también.

Lo he usado para un plugin de wp que hice, concretamente para el autocompletador pillando los datos de filmaffinity. Eso si, si te cambian la web -como paso con film hace 2 semanas- te tocara modificar el codigo xd.

1 respuesta
quique_nach

#12 tienes algun ejemplo de lo que hicistes?

1 respuesta
alterego

#1
Una pequeña guía con ejemplos de como capturar datos de una web mediante php y curl.
Merece la pena echarle un ojo.

http://www.jacobward.co.uk/web-scraping-with-php-curl-part-1/
http://www.jacobward.co.uk/working-with-the-scraped-data-part-2/

APOCa

#13

spoiler
Tunnecino

Mejor si lo subes a un pastebin o algo parecido, por que el code de mv hace la gracia, y te acorta las URL en los code blocks.

Meleagant

Yo cuando he hecho historias de estas he programado algún scrapper en Java con JSoup.

Si necesitas algo más complejo (que envíe información además de simplemente obtener HTML) la librería HttpComponents es muy útil.

16 días después
Weahl

¿Y que hay que hacer cuando has de logearte para conseguir ciertos datos?

Porque ahí es donde estoy atascado, además la página está en .NET y no sé si aun será más complicado.

2 respuestas
elkaoD

#18 loggearte como lo harías normalmente (y guardar las cookies que te devuelve cuando estás loggeado).

1 respuesta
Meleagant

#18 Pues te revisas el código, ves la información que se envía por POST o GET y utilizas algo como HttpComponents para generar los mensajes.

1 respuesta
Weahl

#19 #20 El problema es que hace uso de VIEWSTATE, que son una especie de tokens que con cada conexión da un código y me está costando la vida :(

LOc0

Instálate algo como esto -> https://addons.mozilla.org/es/firefox/addon/httpfox/

Después es cuestión de imitar la petición. Lo más complicado es que envie códigos calculados por Javascript, que tendrás que portar el código de JS al lenguaje de tu crawler o interpretarlo, pero tp es nada del otro mundo.

Si estás con PHP puede que te simplifique un poco la vida -> https://github.com/tonikelope/FastCurl

Salu2 ;)

1 respuesta
Weahl

#22 Lo primero con Firebug ya se hace algo idéntico en la pestaña de Red, aunque se visualiza bastante mejor la verdad.

Lo segundo le echaré un ojo a ver que tal, espero conseguirlo algún día xD

Gracias ;)

JuAn4k4

Al final te cambian la web y te han jodido el script, y en general no cumples los terminos y condiciones, aunque los terminos legales de esto son bastante inespecificos, por lo que tienes via libre.

1 año después
microhelix

Revivo esto para no abrir otro tema (si debería hacerlo que alguien que me pegue un toque para no repetir error).

¿Qué lenguaje debería usar para extraer datos de un puñado de webs?

Estoy escribiendo un programa en c++ que me gustaría tener corriendo en segundo plano. Lo que quiero es que extraiga ciertos valores cada X tiempo de dichas páginas. He buscado por inet pero no me ha quedado muy claro. Me da igual aprender algo nuevo; quiero lo más ligero/eficiente.

He visto scrapy mencionado mucho, pero al ser en python confío en su rapidez. ¿Estoy prejuzgando mal?

2 respuestas
Nucklear

#25 Mismamente con c++ puedes usar curl para descargar la web y luego parsearla internamente en tu programa con htmlcxx

Tambien puedes echar un ojo a esto:

http://www.mostthingsweb.com/2013/02/parsing-html-with-c/

Fyn4r

yo tiraría de python, escapa de C si no es para algo a bajo nivel

Kaiserlau

Lo mejor nose, pero con python usando beautifulsoup me ha parecido coser y cantar.
http://www.crummy.com/software/BeautifulSoup/bs4/doc/

1 respuesta
Perurena

#25 Yo he usado Python con Scrapy.

También he oído maravillas de BeautifulSoup como dice #28, pero Scrapy me pareció más completo.

1 respuesta
DarkSoldier

https://github.com/fabpot/goutte

denada.