Web Scraping con PythonScraping AvanzadoLección 5 de 8
Scrapy: Proyectos profesionales
Scrapy es un framework completo para scraping a gran escala. Maneja concurrencia, pipelines de datos, rate limiting y exportacion automaticamente.
import scrapy
class QuotesSpider(scrapy.Spider):
name = "quotes"
start_urls = ["https://quotes.toscrape.com"]
def parse(self, response):
for quote in response.css("div.quote"):
yield {
"text": quote.css("span.text::text").get(),
"author": quote.css("small.author::text").get(),
"tags": quote.css("a.tag::text").getall(),
}
# Seguir a la siguiente pagina
next_page = response.css("li.next a::attr(href)").get()
if next_page:
yield response.follow(next_page, self.parse)
# Ejecutar:
# scrapy crawl quotes -o quotes.json
Ventajas de Scrapy vs requests:
• Concurrencia automatica (16 requests simultaneos) • Respeta robots.txt automaticamente • Rate limiting configurable • Pipelines para limpiar y guardar datos • Middleware para proxies, retry, etc • Exporta a JSON, CSV, XML automaticamente • Ideal para miles/millones de paginas
Practica esta lección
Resuelve los ejercicios del curso de Web Scraping con Python en la app, gratis y con corrección automática.
Empezar a practicar