Red de conocimiento informático - Material del sitio web - Rastreador scrapy basado en Python, sobre cómo manejar el rastreo incremental

Rastreador scrapy basado en Python, sobre cómo manejar el rastreo incremental

Para un rastreador que solo lee el contenido actualizado de unos pocos sitios web, no es necesario implementar una funcionalidad incremental en el código Python, simplemente agregue el campo URL directamente al proyecto.

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.