|
Página 2 de 2
|
Autor |
Mensaje |
arubioc
Alex
Ingeniero Programador
Registrado: Julio 2011
Mensajes: 248
Edad: 53 Ubicación: Kowloon
|
Re: Extraer Datos HTML
Aqui teneis un ejemplo sencillo:
import urllib
import re
import sys
import string
import requests
from bs4 import BeautifulSoup
from lxml.html.soupparser import fromstring
#partnum = "codigo_del_articulo"
partnum = str(sys.argv[1])
url = "http://www.paginaweb.com/products/" + partnum
htmlfile = urllib.urlopen(url)
htmltext = htmlfile.read()
bs = BeautifulSoup(htmltext,"html.parser")
salida = bs.find('title').get_text()
salida2 = salida.lstrip()
print salida2
|
#11 Lunes, 16 Julio 2018, 16:23 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Extraer Datos HTML
arubioc escribió: Aqui teneis un ejemplo sencillo:
...que son estos ?
import urllib
import re
import sys
import string
|
#12 Lunes, 16 Julio 2018, 22:46 |
|
|
calcena
Ingeniero Programador
Registrado: Julio 2016
Mensajes: 272
Edad: 47
|
Re: Web Scraping
Buenas a todos, me he puesto con el tema del Web Scraping con gambas pero no acaba de funcionar correctamente la extracción y no acabo de ver el problema, no se si es porque la web tiene algún sistema para evitar este tipo de spider o es que no lo realizo correctamente.
Os paso la url ya con un filtro predefinido como ejemplo: https://www.infojobs.net/jobsearch/...d=form_relaunch
En la visualización del resultado lo he ejecutado tal como ha comentado jsban utilizando gb.net.curl y extrae el código del reponse pero creo que el sistema que han desarrollado hace una recirección en algún momento para mostrar realmente los resultado con los parámetros.
Alguna idea de como podría hacer esto con los filtros que he adjuntado?
Gracias por la ayuda.
|
#13 Martes, 05 Febrero 2019, 23:39 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Extraer Datos HTML
Buenos días, calcena
Para ese tipo de consultas, existe una API que te permite realizarlas con total seguridad y bajo sus estándares. Esta API está diseñada para que cualquiera pueda crear su aplicación de escritorio, web, Android o IOS con totales garantías.
https://developer.infojobs.net/docu...ist/index.xhtml
Si bien es cierto que para integrarla en gambas necesitarás usar componentes XML o JSON, además de las clases para obtener y enviar las consultas y respuestas, no tendrás que devanarte los sesos en analizar una página web para extraer los datos del código HTML. Esta es la forma correcta al 100%, salvo que la información que deseas obtener no lo proporcione la API.
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#14 Jueves, 07 Febrero 2019, 10:53 |
|
|
calcena
Ingeniero Programador
Registrado: Julio 2016
Mensajes: 272
Edad: 47
|
Re: Extraer Datos HTML
jguardon escribió: Buenos días, calcena
Para ese tipo de consultas, existe una API que te permite realizarlas con total seguridad y bajo sus estándares. Esta API está diseñada para que cualquiera pueda crear su aplicación de escritorio, web, Android o IOS con totales garantías.
https://developer.infojobs.net/docu...ist/index.xhtml
Si bien es cierto que para integrarla en gambas necesitarás usar componentes XML o JSON, además de las clases para obtener y enviar las consultas y respuestas, no tendrás que devanarte los sesos en analizar una página web para extraer los datos del código HTML. Esta es la forma correcta al 100%, salvo que la información que deseas obtener no lo proporcione la API.
Saludos
Muchas gracias por la inestimable ayuda, no había caído en consultar si existían API para lo que buscaba.
Aunque creo que el filtrado que necesito no lo voy a poder conseguir por las APis así que entonces no tendré ninguna otra forma de hacerlo.
Alguna idea, la cuestión es poder filtrar por población, y por alguna otra cosa más, (según el buscador: programador p.e)
Saludos.
|
#15 Viernes, 08 Febrero 2019, 19:15 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Extraer Datos HTML
calcena escribió:
Aunque creo que el filtrado que necesito no lo voy a poder conseguir por las APis así que entonces no tendré ninguna otra forma de hacerlo.
Alguna idea, la cuestión es poder filtrar por población, y por alguna otra cosa más
Mira si puedes extraer la mayor parte de la información que necesitas directamente desde la API. Posteriormente puedes usar otro tipo de filtrado (ya trabajando con esos datos obtenidos, usando funciones de gambas) para obtener u ordenar esos resultados, resultando mucho más fácil. Es decir, si no puedes hacerlo en un paso, hazlo en dos.
No puedo ser más concreto sin conocer exactamente las necesidades, pero yo lo enfocaría así, en principio.
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#16 Viernes, 08 Febrero 2019, 20:17 |
|
|
calcena
Ingeniero Programador
Registrado: Julio 2016
Mensajes: 272
Edad: 47
|
Re: Extraer Datos HTML
jguardon escribió: calcena escribió:
Aunque creo que el filtrado que necesito no lo voy a poder conseguir por las APis así que entonces no tendré ninguna otra forma de hacerlo.
Alguna idea, la cuestión es poder filtrar por población, y por alguna otra cosa más
Mira si puedes extraer la mayor parte de la información que necesitas directamente desde la API. Posteriormente puedes usar otro tipo de filtrado (ya trabajando con esos datos obtenidos, usando funciones de gambas) para obtener u ordenar esos resultados, resultando mucho más fácil. Es decir, si no puedes hacerlo en un paso, hazlo en dos.
No puedo ser más concreto sin conocer exactamente las necesidades, pero yo lo enfocaría así, en principio.
Saludos
Te lo compro!!!, veo muy correcta la lógica de implementación que me comentas. Atacar el problema dividiéndolo en varios puntos (Dīvide et īmpera).
Ahora bien, te comento la idea concreta (especificaciones funcionales) para ver si me puedes dar el enfoque orientado a componentes GAMBAS.
Mi idea es hacer un spider/crawler para poder explotar los datos de la página infojobs
1- Apoyándome en persistencia dB MySql obtener un mínimo de información parametrizable de los datos a obtener (según la api se debería atacar a un gran conjunto de datos).
Por ejemplo-> Buscar ofertas de Programador en la zona de Barcelona. Cómo esto quizás no lo contempla la API sólo se podría buscar entiendo por Programador ??? aunque tampoco se si esto lo permitirá.
2- Una vez se tiene el groso de datos extraídos y con persistencia en tabla, realizar querys de filtrado para desechar las tuplas no válidas.
Apoyado en una persistencia en tabla, tener los filtros deseados: Población, fecha de inscripción, salario.
Otra opción sería realizar el filtrado del objeto devuelto mediante algoritmo interno y solo pasar a persistencia los datos finales.
3 - Presentar un listado con los resultados en un grid con la opción de tener en un campo el hiperenlace que nos lleve a la oferta concreta, sabiendo que ésta cumple con los requisitos de filtrado para nuestro interés.
Como verás el punto que más me preocupa es el punto 1 ya que la API la veo muy enfocada a un usuario concreto con unas aplicaciones dadas de alta, enfocada a sus preferencias (cosa que puede variar), aunque tengo que analizar más a fondo las APIs veo que han expuesto unos servicios muy abstractos y genéricos.
Cualquier idea o planteamiento será bienvenido.
Saludos y muchas gracias por compartir vuestros conocimientos.
última edición por calcena el Sabado, 09 Febrero 2019, 11:38; editado 1 vez
|
#17 Sabado, 09 Febrero 2019, 11:36 |
|
|
calcena
Ingeniero Programador
Registrado: Julio 2016
Mensajes: 272
Edad: 47
|
Re: Extraer Datos HTML
calcena escribió: jguardon escribió: calcena escribió:
Aunque creo que el filtrado que necesito no lo voy a poder conseguir por las APis así que entonces no tendré ninguna otra forma de hacerlo.
Alguna idea, la cuestión es poder filtrar por población, y por alguna otra cosa más
Mira si puedes extraer la mayor parte de la información que necesitas directamente desde la API. Posteriormente puedes usar otro tipo de filtrado (ya trabajando con esos datos obtenidos, usando funciones de gambas) para obtener u ordenar esos resultados, resultando mucho más fácil. Es decir, si no puedes hacerlo en un paso, hazlo en dos.
No puedo ser más concreto sin conocer exactamente las necesidades, pero yo lo enfocaría así, en principio.
Saludos
Te lo compro!!!, veo muy correcta la lógica de implementación que me comentas. Atacar el problema dividiéndolo en varios puntos (Dīvide et īmpera).
Ahora bien, te comento la idea concreta (especificaciones funcionales) para ver si me puedes dar el enfoque orientado a componentes GAMBAS.
Mi idea es hacer un spider/crawler para poder explotar los datos de la página infojobs
1- Apoyándome en persistencia dB MySql obtener un mínimo de información parametrizable de los datos a obtener (según la api se debería atacar a un gran conjunto de datos).
Por ejemplo-> Buscar ofertas de Programador en la zona de Barcelona. Cómo esto quizás no lo contempla la API sólo se podría buscar entiendo por Programador ??? aunque tampoco se si esto lo permitirá.
2- Una vez se tiene el groso de datos extraídos y con persistencia en tabla, realizar querys de filtrado para desechar las tuplas no válidas.
Apoyado en una persistencia en tabla, tener los filtros deseados: Población, fecha de inscripción, salario.
Otra opción sería realizar el filtrado del objeto devuelto mediante algoritmo interno y solo pasar a persistencia los datos finales.
3 - Presentar un listado con los resultados en un grid con la opción de tener en un campo el hiperenlace que nos lleve a la oferta concreta, sabiendo que ésta cumple con los requisitos de filtrado para nuestro interés.
Como verás el punto que más me preocupa es el punto 1 ya que la API la veo muy enfocada a un usuario concreto con unas aplicaciones dadas de alta, enfocada a sus preferencias (cosa que puede variar), aunque tengo que analizar más a fondo las APIs veo que han expuesto unos servicios muy abstractos y genéricos.
Cualquier idea o planteamiento será bienvenido.
Saludos y muchas gracias por compartir vuestros conocimientos.
Como las prisas no son buenas, he examinado a conciencia las posibilidades de las API que tienen publicadas y he encontrado justo lo necesario:
GET https://api.infojobs.net/api/7/offe...racion-empresas
Creo que esto se adaptaría muy concretamente a lo que necesito.
Ahora me toca lidiar con el componente gb.net.xml a ver si me salgo con la mía de la correcta utilización.
Muchas gracias por todo.
Si alguien tiene un ejemplo de trabajo con este componente sobre un response en Json, agradecido os quedo de antemano.
Saludos.
|
#18 Sabado, 09 Febrero 2019, 13:48 |
|
|
calcena
Ingeniero Programador
Registrado: Julio 2016
Mensajes: 272
Edad: 47
|
Re: Extraer Datos HTML
Buenas de nuevo, bueno pues la cosa no parece tan sencilla, estoy indagando la forma de autenticarse y creo que Infojobs no acaba de aclarar nada el cómo. Aunque sí nos podemos autenticar de dos formas (Básica y OAuth2) creo que no encuentro la forma.
Según su docu: https://developer.infojobs.net/docu...uth/index.xhtml
Por más que testeo lo que indican en ningún caso puedo llegar a visualizar resultados.
No se si alguien sabe algo al respecto sobre esto, yo estoy testeando con Soap-UI para poder ver cómo realizar la llamada REST.
Saludos y gracias.
|
#19 Sabado, 09 Febrero 2019, 16:44 |
|
|
razaAztk
aztk crux
Analista Programador
Registrado: Enero 2010
Mensajes: 340
Edad: 35 Ubicación: Tenochtitlan
|
Re: Extraer Datos HTML
Aquí un ejemplo de autenticación por metodo POST. Ve si te sirve de algo para tu portal web.
https://foro.gambas-es.org/viewtopic.php?f=5&t=5817
Saludos.
|
#20 Domingo, 10 Febrero 2019, 19:10 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 2 de 2
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|