CrawlSpider, использование правил и разбор стартовых URL - PullRequest
0 голосов
/ 05 декабря 2018

Это первый раз, когда я публикую вопрос о SO, недавно я попал в scrapy и python и у меня есть предварительно написанный сканер для сканирования Amazon для продуктов, который требует исправления.

бит кода Iздесь можно определить:

1) класс сканера

class AmazonSpider(CrawlSpider):
    name = 'amazon'
    allowed_domains = ['www.amazon.com']
    rules = (
        Rule(
            LinkExtractor(allow=('/s/ref=sr_pg_'), tags=('a'),attrs= 
                ('href'),restrict_css=('.pagnNext',)),
            callback="parse_items",
            follow=True,
            process_request='process_request'
        ),
   )

2) представляющие интерес элементы данных

def __init__(self, product='samsung', domain=None, *args, **kwargs):
    super(AmazonSpider, self).__init__(*args, **kwargs)
    self.start_urls = [a,b,c,d] 
    #Some more lines below

список из 4 URL, каждый изкоторый является результатом поиска на Amazon (например, один будет получен при поиске мобильных телефонов Samsung, другие будут телевизоры LG и т. д.)

3) интересующий метод

def parse_start_url(self, response):
    request = Request("https://www.amazon.com/s/?field-keywords=", 
         callback=self.parse_items)
    return request

4) метод обратного вызова в каждом правиле parse_items работает с извлеченными ссылками, чтобы получить интересующие данные

Насколько я понимаю, каждый URL из списка start_urls анализируется parse_start_url() метод:

Я не могу понять: 1) как работают «правила» 2) как работает «linkextractor» внутри

Мне нужно, чтобы все 4 URL были там.ссылки извлечены со всех страниц, а затем все эти ссылки могут быть использованы для полученияинформация о продукте.Если это хорошо?Могу ли я также узнать пример, в котором мы можем определить приоритеты для start_urls?

** 4 конкретных URL-адреса результатов поиска используются в списке start_urls, поскольку при использовании общего результата поиска было предоставлено только 20 страниц.

Еслилюбой может обернуть голову вокруг моего запроса, пожалуйста, помогите.Большое спасибо, также, если вам интересно прочитать это и вам нужна дополнительная информация для решения моей проблемы, пожалуйста, спросите.

Спасибо всем !!

...