Spider через Scrapyrt возвращает 0 элементов при очистке страницы поиска

#scrapy

#scrapy

Вопрос:

Я создал паука, который может просматривать страницу на сайте электронной коммерции и собирать данные о различных товарах. Паук отлично работает с определенными страницами сайта (www.sitedomain/123-item-category ), а также со страницей поиска (www.sitedomain/searchpage?controller?search=keywords предмет должен быть найден).

Но, когда я запускаю его через Scrapyrt, конкретная страница работает нормально, но страница поиска возвращает 0 элементов. Ошибок нет, всего 0 элементов.Это происходит на 2 разных сайтах с 2 разными пауками.

Есть ли что-то конкретное для страниц поиска, что необходимо учитывать при использовании Scrapyrt?

Возьмите паука, подобного этому:

 import scrapy

class QuotesSpider(scrapy.Spider):
    name = "minimal"
    
    def start_requests(self):
        urls = [
           "https://www.dungeondice.it/ricerca?controller=searchamp;s=ticket to ride",
        ]
        for url in urls:
            yield scrapy.Request(url=url, callback=self.parse)
            

    def parse(self, response):
        print("Found ", len(response.css("article")), " items")
        for article in response.css("article"):
            print("Item: ", article.css("img::attr(title)").get())
 

(Я также установил Obey_robots = False)

Я получаю 20 элементов обратно, если я запускаю:

 scrape crawl minimal
 

Но я получаю 0 элементов обратно (без ошибок, просто без результатов), если я запускаю:

 curl "http://localhost:9081/crawl.json?spider_name=minimalamp;url=https://www.dungeondice.it/ricerca?controller=searchamp;s=ticket to ride"
 

Ответ №1:

Я думаю, вы могли бы поместить «return item» в конец «process_item» в вашем pipeline.py:

 def process_item(self, item, spider):
    ...
    return item
 

Я обнаружил ту же проблему, что и вы описали, после того, как я отредактировал свои коды, я решил ее.
Надеюсь, это может помочь =)

Комментарии:

1. Я посмотрел на свой pipelines.py файл и найден уже с возвращаемым товаром. Должен ли я создавать конвейер. py себя где-то еще? Я почти уверен, что проблема связана с scrapyrt, потому что простой паук работает.