scrapyによるスクレイピングを試しています.
初めにxxx/yyy/archiveにアクセスし,archiveの情報を取得,callbackによりarchive以下の情報を取得したいです.
python
1# -*- coding: utf-8 -*- 2import scrapy 3from scrapy.spiders import CrawlSpider, Rule 4from scrapy.linkextractors import LinkExtractor 5from scrapy.selector import Selector 6 7from restpro.items import TestItem 8 9class TestderSpider(scrapy.Spider): 10 name = 'test' 11 allowed_domains = ['xxx/yyy/archive'] 12 start_urls = ['http://xxx/yyy/archive/'] 13 14 rules = [Rule(LinkExtractor(), callback='parse', follow=True)] 15 16 def parse(self, response): 17 18 print("Scraping: " + response.url) 19 20 obj = response.selector.xpath('path_to_tag').extract() 21 item = TestItem() 22 item['test'] = obj 23 yield item 24 25 for href in response.xpath('path_to_href').extract(): 26 url = response.urljoin(href) 27 print("URL is :{0}".format(url)) 28 yield scrapy.Request(url, callback=self.parse) 29 30 31
printによって表示されるURLはhttp://xxx/yyy/archive/zzz.html(複数)と正しいものでした.
yield scrapy.Request(url, callback=self.parse)
によって再度parseが呼ばれると思っているのですが,print("Scraping: " + response.url)
の出力も最初の呼び出し以外されません.
環境
- scrapy 1.5.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。