Как использовать одного бота для разных сайтов - PullRequest
0 голосов
/ 11 апреля 2019

Хочу поцарапать 2 разных сайта.Один из них - обычный html, а другой - javascript (для которого мне нужен всплеск, чтобы очистить его).Поэтому у меня есть несколько вопросов по этому поводу:

  1. Могу ли я очистить два разных типа сайтов только одним ботом (html и javascript one)?Я сделал два html-сайта и раньше, и это сработало, но мне интересно, работает ли это также, если один из них - javascript

  2. Если первый вопрос возможен, могу ли я экспортировать json отдельно?Как и для url1 output1.json, для url2 output2.json?

  3. Как видно из моего кода, код нужно отредактировать, и я не знаю, как это сделать, когда два разных типасайты должны быть очищены.

  4. Есть ли какой-нибудь инструмент скрапа для сравнения json?(Два разных веб-сайта имеют почти одинаковое содержимое. Я хочу сделать output1.json базой и проверить, отличаются ли некоторые значения в output2.json или нет.

Мой код:

class MySpider(scrapy.Spider):

    name = 'mybot'
    allowed_domains = ['url1','url2']


    def start_requests(self):
        urls = (
            (self.parse1, 'url1'),
            (self.parse2, 'url2'),
        )
        for callbackfunc, url in urls:
            yield scrapy.Request(url, callback=callbackfunc)
            #In fact url2 must for javascript website so I need clearly splash here
    def parse1(self, response):
        pass

    def parse2(self,response):
        pass

1 Ответ

1 голос
/ 11 апреля 2019

Да, вы можете очистить более одного сайта одним и тем же пауком, но не имеет смысла, если они слишком разные. Способ сделать это вы уже выяснили: allowed_domains и start_requests (или start_urls). Однако экспорт в другие файлы не будет простым. Вам нужно будет написать свой код экспорта.

ИМХО наличие одного паука на сайт - путь. Если они разделяют некоторый код, у вас может быть класс BaseSpider, от которого ваши пауки могут наследовать.

А что касается упомянутого вами сайта javascript, вы уверены, что не можете напрямую запросить его API?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...