/ / Scrapy: impossibile modificare l'URL dell'oggetto richiesta in process_request di DownloadMiddleware - python, scrapy

Scrapy: impossibile modificare l'URL dell'oggetto richiesta in process_request di DownloadMiddleware - python, scrapy

Sto cercando di creare un file di download discrapy che può cambiare l'url dell'oggetto di richiesta. Ma non riesco a farlo funzionare con process_request, poiché la pagina di download è ancora quella originale. il mio codice è il seguente:

#middlewares.py
class UrlModifyMiddleware(object):
def process_request(self, request, spider):
original_url = request.url
m_url = "http://whatsmyuseragent.com/"
request.url = m_url
#request = request.replace(url=relay_url)

Il codice per spider:

#spider/test_spider.py
from scrapy.contrib.spiders import CrawlSpider
from scrapy.http import Request

class TestSpider(CrawlSpider):
name = "urltest"
start_url = "http://www.icanhazip.com/"

def start_requests(self):
yield Request(self.start_url,callback=self.parse_start)

def parse_start(self,response):
html_page = response.body
open("test.html", "wb").write(html_page)

In settings.py ho impostato:

DOWNLOADER_MIDDLEWARES = {
"official_index.middlewares.UrlModifyMiddleware": 100,
}

risposte:

0 per risposta № 1

Metto alla prova il mio codice esatto con scrapy 0.18.0. Il codice funziona bene. Suppongo che forse sia un bug della versione 0.14.4.