Semillero de Ciencia de Datos
2022-12-10
a
WwrzSb
aria-label
Scrapy
# Con xPath
titulos_xpath = sel.xpath('//a[@class = "WwrzSb"]/@aria-label').extract()
# Con CSS
titulos_css = sel.css('a.WwrzSb::attr(aria-label)').extract()
# ¿Tienen la misma longitud?
len(titulos_xpath) == len(titulos_css)
True
['Así fue operativo en el que murió sujeto señalado de asesinar a dos policías en Bosa',
'Habla uno de los policía que se enfrentó con presuntos delincuentes en Bosa',
'Abatido uno de los asesinos de dos uniformados en Bosa',
'Revelan video del asesino de dos policías en Bogotá justo luego del crimen; iba tranquilo',
'Ya hay 156 quemados con pólvora en solo 8 días']
# xPath
fuente_xpath = sel.xpath('//span[@class = "vr1PYe"]/text()').extract()
# CSS
fuente_css = sel.css('span.vr1PYe::text').extract()
# ¿Tienen la misma longitud?
len(fuente_xpath) == len(fuente_css)
True
# xPath
fecha_xpath = sel.xpath('//time[@class = "hvbAAd"]/@datetime').extract()
for i in range(len(fecha_xpath)):
fecha_xpath[i] = datetime.strptime(fecha_xpath[i], '%Y-%m-%dT%H:%M:%SZ')
# CSS
fecha_css = sel.css('time.hvbAAd::attr(datetime)').extract()
for i in range(len(fecha_css)):
fecha_css[i] = datetime.strptime(fecha_css[i], '%Y-%m-%dT%H:%M:%SZ')
# ¿Tienen la misma longitud?
len(fecha_xpath) == len(fecha_css)
True
lista_noticias = [titulos_xpath, fuente_xpath, fecha_xpath]
df_noticias = pd.DataFrame(lista_noticias).transpose()
df_noticias.columns = ['noticia', 'fuente', 'fecha']
df_noticias.head(n=2)
noticia | fuente | fecha | |
---|---|---|---|
0 | Así fue operativo en el que murió sujeto señal... | Noticias Caracol | 2022-12-09 18:21:04 |
1 | Habla uno de los policía que se enfrentó con p... | Noticias Caracol | 2022-12-10 01:17:12 |
Scrapy