ответ scrapy не похож на источник страницы - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь использовать оболочку scrapy, чтобы попасть на "ykc1.greatwestlife.com", который должен быть веб-сайтом publi c, хотя есть много вещей, если я смотрю исходный код страницы вручную, я не могу получить правильный ответ с использованием scrapy.

результат ответа оболочки scrapy

Нужно ли мне использовать scrapy-spla sh в этом случае? Любые идеи? Спасибо

1 Ответ

1 голос
/ 09 августа 2020

Фактически вы можете увидеть два последовательных запроса, вызванных

      <head>
        <script language="javascript">
            document.cookie = "cmsUserPortalLocale=en;path=/";
            document.cookie = "cmsTheme=advgwl;path=/";    
            document.cookie = "siteBrand="+escape(location.hostname)+"; path=/";
            window.location.reload(true);
        </script>

the back-to-back requests

where the first request is substantially smaller, and likely causing what you're experiencing. Thankfully, since the cookies appear to be static, you can reproduce that behavior quite easily:

def parse(self, response):
    # this is required because the response that arrives to parse()
    # has session cookies but we need to add 3 more to them
    new_cookies = {
      "cmsUserPortalLocale": "en",
      "cmsTheme": "advgwl",
      "siteBrand": "ykc1.greatwestlife.com",
    }
    yield response.follow(url=request.url, cookies=new_cookies,
                          callback=self.parse_home)

def parse_home(self, response):
    # and now you have the full body
...