私はスパイダーでウェブサイトからjsonデータを抽出しようとしていますが、スパイダーを実行してエラーが発生せず、0ページをクロールしたような問題があります。私は出力を見るために出力をjsonファイルに保存するコマンドも使用します。Scrapy Spider Crawl 0 pages
次のコードは、私のクモです:
import scrapy
class WineSpider(scrapy.Spider):
name = "SpidyWine"
i = 0
url = 'https://maiscarrinho.com/api/search?q=vinho&pageNumber=%s&pageSize=10'
start_urls = [url % 1]
def parse(self, response):
data = json.loads(response.body)
for item in data['results']:
yield {
'Image': item.get('image')
}
if data['Image']:
i = i + 1
yield scrapy.Request(self.url % i, callback=self.parse)
やアイテムの私のクラス:
import scrapy
class MaiscarrinhoItem(scrapy.Item):
image = scrapy.Field()
price = scrapy.Field()
supermarket = scrapy.Field()
promotion = scrapy.Field()
wineName = scrapy.Field()
brand = scrapy.Field()
今のところ、私は物事をより簡単に取得するために私のクモにImageフィールドを使用しています。 また、私のイデアは、私のスパイダーでifステートメントを書いたとき、無限のスコリングに「対処する」ことでした.Json APIが「Image」を持っていると、そのページに内容があることを意味します。
事前
実行ログを投稿できますか?あなたは 'scrap crawl myspider&> output.log'で取得できます。 – Granitosaurus
@Granitosaurus 私の投稿を編集しました。あなたのコマンドで私のファイルが空だったので、あなたはイメージを持っています。 –