python - scraping - scrapy vs beautifulsoup
La solicitud de Scrapy no pasa a la devoluciĆ³n de llamada cuando el 301? (1)
Tuvo que pasar el parámetro dont_filter=True
a la función de devolución de llamada de respuesta
Estoy tratando de actualizar una base de datos llena de enlaces a sitios web externos, por alguna razón, se saltea la devolución de llamada cuando se mueven los encabezados de solicitud / sitio web / w / e / bandera 301
def start_requests(self):
#... database stuff
for x in xrange(0, numrows):
row = cur.fetchone()
item = exampleItem()
item[''real_id''] = row[0]
item[''product_id''] = row[1]
url = "http://www.example.com/a/-" + item[''real_id''] + ".htm"
log.msg("item %d request URL is %s" % (item[''product_id''], url), log.INFO) # shows right
request = scrapy.Request(url, callback=self.parse_url)
request.meta[''item''] = item
yield request
def parse_url(self, response):
item = response.meta[''item'']
item[''real_url''] = response.url
log.msg("item %d new URL is %s" % (item[''product_id''], item[''real_url'']), log.INFO) #doesnt even show the items that have redirected.
La versión de Scrapy es 0.24, ¿qué puedo hacer?
Dato interesante: solo ocurre con algunos de los enlaces rotos, incluso si son del mismo sitio web con las mismas URL exactas, etc.