Tome apuntes desde el inicio a mano al llegar a esta lectura tan bien estructurada, siento vergüenza de mis garabatos jejejeje.
Introducción al web scraping
¿Qué es el web scraping?
¿Por qué aprender web scraping hoy?
Python: el lenguaje más poderoso para extraer datos
Fundamentos de la web
Entender HTTP
¿Qué es HTML?
Robots.txt: permisos y consideraciones al hacer web scraping
XML Path Language
XML Path Language
Tipos de nodos en XPath
Expresiones en XPath
Predicados en Xpath
Operadores en Xpath
Wildcards en Xpath
In-text search en Xpath
XPath Axes
Resumen de XPath
Aplicando lo aprendido
Proyecto: scraper de noticias
Un proyecto para tu portafolio: scraper de noticias
Construcción de las expresiones de XPath
Obteniendo los links de los artículos con Python
Guardando las noticias en archivos de texto
Conclusiones
Cómo continuar tu ruta de aprendizaje
Lectura
Aportes 67
Preguntas 0
Tome apuntes desde el inicio a mano al llegar a esta lectura tan bien estructurada, siento vergüenza de mis garabatos jejejeje.
Repasando la clase de XPath
++CONTENIDO
++0:00 ¿QUÉ ES XPATH?
0:58 XML
2:08 DEFINIR DONDE VAMOS A BUSCAR
3:25 ENCONTRANDO LOS ELEMENTOS
4:01 PREDICADOS
4:17 BÚSQUEDA POR ATRIBUTOS
5:26 EXPRESIONES LÓGICAS
6:35 BÚSQUEDA EN VARIOS NIVELES
8:28 BÚSQUEDA POR POSICIÓN (INDEXACIÓN)
9:54 BÚSQUEDA CON FUNCIONES
10:10 BÚSQUEDA POR PATRONES (contains, starts-with, ends-with)
11:52 BÚSQUEDA POR CONTENIDO (text())
13:00 EXTRACCIÓN DE DATOS (texto y atributos)
14:42 XPATH CHEATSHEET
15:23 ¿CÓMO PROBAR MIS XPATH?
Solo por que refuerzo más anotando, si no… Imprimo esto y lo pego en la libreta ❤️
Un poco mas sobre los XPath Axes
He usado xpath con Selenium, pero nunca me tome el tiempo para revisar la sintaxis simpre usaba el inspeccionador para obtenerlo
Mi nuevo poster!!!
Todos los comandos de Xpath utilizados, mas descripción
$x('/') // ruta principal
$x('//h1/a/text()').map(x => x.wholeText)//seleciona el texto del nodo y lo convierte a texto, el .map convierte el nodo text en el chromeNav
//Usando Predicados
$x('//div/span[@class="text"]/text()') //usando predicado osea [corchetes] selecciona todos los de tipo class text
$x('//span[@class!="text"]')
//Usando operadores
$x('//div/div[position()>5]')// trae los que esten en una posion por encima de
$x('//span[@class="text" or @class="tag-item"]')// trae los de una clase o otra
$x('//span[not(@class)]') // trae los que no tengan clase
//Usando Wildcards
$x('/') // Trae todo el documento porque representa la raíz de nuestro el html
$x('/*') // * después de / pide que traiga todos los nodos que están debajo de / (* es el primer wildcard)
$x('/html/*') // Trae todos los nodos que están inmediatamente después de html
$x('//*') <- // es la expresión para saltar todos los niveles y con el * en todas las direcciones. Trae todos los nodos y todos los atributos de estos nodos.
$x('//span[@class="text]/@*') //Trae todos los span, que tengan como clase “text”, con @* trae todos los atributos. Dicho de otra forma, trae todos los atributos de todos los nodos de tipo span de clase “text”.
$x('/html/body//div/@*') //Todos los atributos (usando @*) de todos los div (usando //div) que están después de body
$x('//span[@class="text" and @itemprop="text"]/node()')//Trae todos los spam que sean de clase “text” que tengan un atributo @itemprop “text” y de ahí (usando node()) traer todo lo que esté dentro de los spam que cumplen las condiciones
// node() a diferencia de * trae no solamente los nodos, sino también todo el contenido
//Usando In text Search
$x('//small[@class="author" and starts-with(., "A")]/text()')// usando starts-with le indico con que letra inicia la busqueda
$x('//small[@class="author" and contains(., "g")]/text()') // usando contains se le indica la(s) letra(s) que debe contener para hacer la busqueda
$x('//small[@class="author" and starts-with(., "A") and contains(., "Ei")]/text()') //Logicamente Tambien se puede concatenar
//Notas extras sobre In text Search
start-with(.“Texto a buscar”) // Empezar con, el punto hace referencia al nodo actual.
contains (., “Texto a buscar”) // Sirve para llamar por el texto contenido en.
// Nota: Debido a las versiones del lenguaje Xpath en los navegadores
// las funciones end-with y matches no están disponibles, pero una ve en código python corren sin problemas.
end-with(.,"")// Termina en.
matches(.,"")// Sirve para hacer una búsqueda en el texto de un nodo que coincida con una expresión regular.
//Xpath Axes
$x('/html/body/div/self::div')//Elige el mismo nodo
$x('/html/body/div/child::div')//elige los hijos del nodos
$x('/html/body/div/descendant::div')// elige los desendientes (osea los hijos de los hijos de los hijos)
$x('/html/body/div/descendant-or-self::div') // y por supuesto, tambien podemos usar compuertas logicas
Agregado a favoritos como “Resumen Xpath genialidad platzi”
Que nivel, muy cuidado, de verdad da gusto así. :ma
Muy buen resumen
Excelente lectura.
Buen resumen. Gracias
Xpath cheatsheet
good abstract
Muy bien explicado Facundo!!
Excelente forma de explicar xpath y esta es la cereza al pastel !
Que buen resumen
Me ha encantado este curso!!!
Gran forma de resumir el módulo
Estos resúmenes en forma de artículo al final siempre son buenos y te ayudan a recordar. Gracias al profe Facundo y al Team Platzi por hacerlo, ya lo he visto en algunos cursos.
Increible resumen.
Genial!
Muy buen resumen
Excelente resumen
Perfecto, hasta como para imprimirlo
Excelente resúmen 😃
Excelente resumen
Esta de maravilla este resumen 😃
Excelente!
Super este curso, ya estoy aplicando lo aprendido para los comentarios y me gusta de Instagram, le veo muchísimo potencial :3
Excelente resumen
Resumen perfecto 😄
Excelente resumen !!!
muy buen resumen con respecto al xpath
Excelente resumen, ahora toca practicar!
Gracias por el Resumen!
Gracias por el resumen!!
Gracias profe Facundo
Uff es alentador, cada vez entender un poco mas como funciona X-path y no trabajar a ciegas copiando y pegando. Muchas gracias por sintetizarlo en este curso introductorio.
Muy buena síntesis de los comandos usados 😃
Genial
wow
Muy buena información resumida, muchas gracias!!
Gran resumen
¡Genial! ❤️
No te preocupes si crees que este resumen esta mejor que tus apuntes, uno memoriza mas escribiendo que solamente oyendo, así que los apuntes nunca están de sobra, en especial porque los detalles que “tu” vas a necesitar solamente tu los vas a anotar a diferencia de un resumen general que no toma en cuenta las cosas que a ti se te podrían olvidar, de igual forma se puede aprovechar esta infografía para apoyar la info de tus apuntes.
les recomiendo bastante esta Cheatsheet de xpath
https://quickref.me/xpath
Hermoso tener toda la documentación importante en una misma página.
Muy bueno el resumen!
Esto debería estar al principio ! jajajaja
Una consulta XPath (Lenguaje de rutas XML) puede especificarse como parte de una dirección URL o dentro de una plantilla. … XPath es un lenguaje de navegación de grafos que se usa para seleccionar un conjunto de nodos de un documento XML.
Gracias por el resumen
⭐️⭐️⭐️⭐️⭐️
Excelente, muy bien estructurada la explicación y el resumen!. Gracias
Esta Genial!, muy compacto el Resumen
Super util 😄
a mi me ha quedado super claro todo sobre todo con esta imagen, aporte perfecto
Muy bueno retonar la sitaxis a tener encuenta
Qué buen resumen!
Valioso resumen.
Excelente Gracias!
Perfecto, muchas gracias.
Gracias
Muy buen resumen xD palabras clave.
Que buenisímo aporte.
Tengo todos mis apuntos en un notepad, espero a la larga nose complicado volver a inerpretarlo jeje gracias profe Facundo por la excelente estrategia pedagogica
Vengo del Curso de Introducción a Selenium con Python y esto me fue muy util 😄
Excelente material!!
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?