No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripción 🔥

Aprende todo un fin de semana sin pagar una suscripción 🔥

Regístrate

Comienza en:

2D
1H
1M
21S
Curso de Scrapy

Curso de Scrapy

Facundo García Martoni

Facundo García Martoni

Utilizando XPath en el sitio de la CIA

19/27
Recursos

Aportes 20

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Paso a paso actualizado (08.01.2020):

El nuevo link para acceder al historical colletion es: https://www.cia.gov/readingroom/historical-collections

Por lo tanto, en consola ponemos:

scrapy shell "https://www.cia.gov/readingroom/historical-collections"

Una vez dentro del shell, ponemos:

response.xpath('//a[starts-with(@href, "collection") and (parent::h3|parent::h2)]/@href').getall()

Update: Estoy haciendo este proyecto el 08.01.2021 y ya en la página de la CIA hay definido un robot.txt. Acá el link:

https://www.cia.gov/robots.txt

Este proyecto necesita al menos un texto de actualización por lo de que el sitio de la CIA ya tiene robots.txt

Ahora si tienen el archivo robots.txt : https://www.cia.gov/robots.txt

Hice algunas comparaciones y propongo el siguiente modelo de busqueda ya que con el propuesto se pierden algunos links que estan dentro de una etiqueta <p> y para eliminar los links repetidos hacemos un cast a un set

set(response.css('a[href^=collection]::attr(href)').getall())
scrapy shell "https://www.cia.gov/readingroom/historical-collections"
response.xpath('//a[starts-with(@href, "collection") and (parent::h3|parent::h2)]/@href').getall()

Un dato interesante y curioso a fecha 23/01/2021 es que hay un articulo llamado “Intelligence, Policy, and Politics: The DCI, the White House, and Congress” que por alguna razón la letra “I” va a un articulo distinto que el resto del texto, para hacerme entender mejor dejo imágenes:



La I en la imágen anterior está sola, y en la siguiente imágen aparecen el resto



Y aquí dejo el código html:


Como dato a destacar: EL link al que referencia la “I” es un link a lo que creo que es un articulo de la versión antigua de la web.

ya existe el archivo robots.txt de CIA
https://www.cia.gov/robots.txt

Actualización XPath 02/01/2022

//div[@class = “field-item even”]/h3/a/@href

También se puede usar la expresión xpath

//div[@class="field-item even"]/*[self::h2 or self::h3]/a/@href

El paso a paso

En la página de la CIA https://www.cia.gov/library/readingroom/historical-collections

Y en la consola:

$ scrapy shell "https://www.cia.gov/library/readingroom/historical-collections"

Y ya dentro del entorno de Python

>>> response.xpath('//a[starts-with(@href, "collection") and (parent
::h3|parent::h2)]/@href').getall()

Tener en cuenta:

User-agent: Mediapartners-Google*
Disallow: /

User-agent: bingbot
Disallow: /

User-agent: msnbot
Disallow: /

User-agent: IsraBot
Disallow: /

User-agent: Orthogaffe
Disallow: /

User-agent: UbiCrawler
Disallow: /

User-agent: DOC
Disallow: /

User-agent: Zao
Disallow: /

User-agent: sitecheck.internetseer.com
Disallow: /

User-agent: Zealbot
Disallow: /

User-agent: MSIECrawler
Disallow: /

User-agent: SiteSnagger
Disallow: /

User-agent: WebStripper
Disallow: /

User-agent: WebCopier
Disallow: /

User-agent: Fetch
Disallow: /

User-agent: Offline Explorer
Disallow: /

User-agent: Teleport
Disallow: /

User-agent: TeleportPro
Disallow: /

User-agent: WebZIP
Disallow: /

User-agent: linko
Disallow: /

User-agent: HTTrack
Disallow: /

User-agent: Microsoft.URL.Control
Disallow: /

User-agent: Xenu
Disallow: /

User-agent: larbin
Disallow: /

User-agent: libwww
Disallow: /

User-agent: ZyBORG
Disallow: /

User-agent: Download Ninja
Disallow: /

User-agent: wget
Disallow: /

User-agent: grub-client
Disallow: /

User-agent: k2spider
Disallow: /

User-agent: NPBot
Disallow: /

User-agent: WebReaper
Disallow: /

User-agent: *
Disallow: /js/
Disallow: /preview/
Disallow: /*.js$
Disallow: /*.js.map$
Disallow: /*.json$
Sitemap: https://www.cia.gov/sitemap.xml
Sitemap: https://www.cia.gov/the-world-factbook/sitemap.xml
Host: https://www.cia.gov

También en la página del gobierno de mi país (México) no tiene robots.txt.

La Agencia Central de Inteligencia (CIA, por su sigla en inglés) es una entidad independiente del Gobierno de Estados Unidos encargada de la recopilación, análisis y uso de información y servicios de inteligencia para asistir al presidente del país y sus asesores en la toma de decisiones relacionadas a la seguridad

Si alguien me pudiera ayudar con este error, gracias. No puedo usar el scrapy shell.

¿Como se actualiza scrapy 1.x a 2.x en Ubuntu 20.04 desde la terminal? Gracias

AFIP y aduana Argentina no tienen robots.txt

el mejor proyecto del curso genial !!