Запрошенный Scrapy-Splash URL и реальный URL - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь создавать мгновенные отчеты для некоторых моих веб-страниц с помощью Python-модуля Splash and Scrapy-Splash.

Проблема в том, что я не могу получить последний URL-адрес corect, как в splash render.json. Когда веб-сайт перенаправляет. Например, для localhost: 8050 / render.json результат рендеринга www.google.com будет таким:

{"requestedUrl": "http://www.google.com/", 
"url": "https://www.google.com/?gws_rd=ssl", 
"title": "Google", "geometry": [0, 0, 1024, 768]}

Но внутри моего скрипта Python мне удается получить только "http://www.google.com"

Мой код:

    def start_requests(self):
        return [Request(self.url, callback=self.parse, dont_filter=True)]

    def parse(self, response):
        splash_args = { 'wait': 1 }
        return SplashRequest(
            response.url,
            self.parse_link,
            args=splash_args,
            endpoint='render.json',
            ) 

    def parse_link(self, response):
        result = {
            'requested_url': response.data['requestedUrl'],
            'real_url': response.data['url'],
            'response': response.request.url,
            'splash_url': response.real_url
            }

Но все это возвращает:

{"requested_url": "http://www.google.com/", 
 "real_url": "http://www.google.com/", 
 "response": "http://127.0.0.1:8050/render.json", 
 "splash_url": "http://127.0.0.1:8050/render.json"}

Есть ли способ преодолеть это?

...