Cómo buscar un texto en un archivo CSV
Publicado por Jey (15 intervenciones) el 05/09/2019 23:40:59
Hola, estoy intentando crear un pequeño código capaz de publicar noticias en una web.
Para ello necesito que acceda a un archivo CSV, lea la última linea, y después compare esa última línea con el resto del CSV para asegurarse de que esa última noticia no está duplicada y así poder pasar a la publicación.
Vayamos con la parte que no consigo: verificar si la noticia está ya creada o no.
Aquí os dejo lo que tengo de código, fijaros sobre todo en la parte final del código, la parte del scrapping funciona bien, muchísimas gracias:
Para ello necesito que acceda a un archivo CSV, lea la última linea, y después compare esa última línea con el resto del CSV para asegurarse de que esa última noticia no está duplicada y así poder pasar a la publicación.
Vayamos con la parte que no consigo: verificar si la noticia está ya creada o no.
Aquí os dejo lo que tengo de código, fijaros sobre todo en la parte final del código, la parte del scrapping funciona bien, muchísimas gracias:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
from scrapy.item import Field
from scrapy.item import Item
from scrapy.spiders import Spider
from scrapy.selector import Selector
from scrapy.loader import ItemLoader
import time
import csv
import pandas as pd
import numpy as np
class Pregunta(Item):
pregunta = Field()
id = Field()
class Vandal(Spider):
name = "ColectorVandal"
start_urls = ['https://vandal.elespanol.com/noticias/videojuegos']
def parse(self, response):
sel = Selector(response)
preguntas = sel.xpath('//*[@id="pestana_noticias"]/div[2]/div[1]/div/div[2]/div[1]/a')
for i, elem in enumerate(preguntas):
item = ItemLoader(Pregunta(), elem)
item.add_xpath('pregunta', '//*[@id="pestana_noticias"]/div[2]/div[1]/div/div[2]/div[1]/a/text()')
item.add_value('id', i)
yield item.load_item()
#TODA LA PARTE DE ARRIBA FUNCIONA PERFECTAMENTE, ES A PARTIR DE AHORA DÓNDE TENGO DUDAS:
with open('vandalnoticia.csv', 'r') as f: #Abro el CSV
lines = f.read().splitlines() #En estas dos líneas creo la variable "last_new", y sólo almacena la última linea del CSV
last_new = lines[-1]
print(last_new) #La imprimo, sólo para verificar que funciona, y hasta aquí, funciona.
#Ahora llega la parte que no funciona, aquí trato de comprobar si "last_new" existe en el archivo CSV.
if f.str.contains(last_new):
print("Me cago en dios") #Esto es fruto de mi desesperación xD
Valora esta pregunta


0