Rastreador scrapy basado en Python, sobre cómo manejar el rastreo incremental
item['Url'] = respuesta.url
Luego configure la columna que almacena la URL para que sea única en el lado de los datos.
Después, en código Python, capture las excepciones devueltas por la confirmación de la base de datos e ignórelas o vuelquelas en el registro.
Estoy usando SqlAlchemy. Lo siguiente es lo que escribí
desde sqlalchemy.exc import IntegrityError
class XxxPipeline(object):
def Process_item( self, item, spider):
p># alguna sesión.add()
# .......
prueba:
sesión.commit( )
imprime '¡rastreo de %s realizado!' % elemento['Url']
excepto IntegrityError:
imprime 'omitir %s % elemento[.' 'Url ']
elemento devuelto
Aunque algunos datos se repetirán para cada rastreo, la URL en la biblioteca de resultados finales no será la misma.
Para los rastreadores pequeños, el costo del rastreo repetido es básicamente insignificante.