Проблема с файлами cookie сканера Scrapy: язык сайта изменился - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь сканировать веб-сайт, на котором сверху есть кнопка выбора языка, а по умолчанию используется английский язык.Как показано ниже.
enter image description here

Хотя я думал, что мне удалось отсканировать данные, я обнаружил почти случайно, что выходной файл JSON начал содержать символы Юникода (только ятребуется англоязычная версия данных).

Похоже, что паук перешел на страницы арабской версии, а URL-адрес изменился и между ними была добавлена ​​строка '/ ar /'.Затем я могу применить некоторую операцию к URL-адресу, чтобы перейти на английскую версию, но мой эксперимент с веб-сайтом также показывает, что, пока я выбираю какой-либо язык, cookie-файл запоминает его и переводит любую страницу в ее переведенную языковую версию.


    import scrapy
    import re


    class MyExampleSpider(scrapy.Spider):
        name = "my_example"
        start_urls = [
            'https://www.example.org',
        ]


        def parse(self, response):

            for href in response.xpath('//li/a[re:test(@href, "/.*/causes")]/@href'):
                yield response.follow(href, self.parse_case)

            # follow pagination alphabet links
            for href in response.xpath('//li/a[re:test(@href, "/.*/causes/.*letter=A")]/@href'):
                yield response.follow(href, self.parse)


        def parse_case(self, response):

            yield {
                'case_name': response.xpath('//h1/a/text()').extract()[0],
                'causes_names': response.xpath('//h2[text()="Causes"]/following-sibling::ul[1]/li/strong/text()').extract(),
            }

Ниже приведен снимок выходного файла json.enter image description here

Мой вопрос: почему происходит этот языковой сдвиг и как я могу решить эту проблему?

...