#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, потому что простой паук работает.