Kickstarter.com projelerini scrapy kullanarak ayrıştırmak istiyorum, ancak başlangıç_öğeleri altında açıkça belirtmediğim örümcek arama projelerini nasıl oluşturacağımı anlayamıyorum. Belirlenen scrapy kodunun ilk kısmına sahibim (gerekli bilgileri bir web sitesinden alabilirim), bunu kickstarter.com/projects alan adı altındaki tüm projeler için yapamıyorum.Scrapy - belirli bir alanın tüm alt sayfalarını ayrıştırma
Okuduklarımdan, ayrışmanın mümkün olduğunu düşünüyorum (1) başlangıç sayfasındaki bağlantıları kullanarak (kickstarter.com/projects), (2) başka bir projeye atlamak için bir proje sayfasından bağlantılar kullanarak ve (3) ayrıştırmak için web sayfalarını bulmak için bir site haritası kullanıyorum (kickstarter.com'un sahip olduğunu sanmıyorum).
Bu yöntemlerin her birini denemek için saatler harcadım ama hiçbir yere gitmiyorum.
Scrapy öğretici kodunu kullandım ve üzerine kurdum. İşte
şimdiye kadar çalışır parçasıdır:from scrapy import log
from scrapy.contrib.spiders import CrawlSpider
from scrapy.selector import HtmlXPathSelector
from tutorial.items import kickstarteritem
class kickstarter(CrawlSpider):
name = 'kickstarter'
allowed_domains = ['kickstarter.com']
start_urls = ["http://www.kickstarter.com/projects/brucegoldwell/dragon-keepers-book-iv-fantasy-mystery-magic"]
def parse(self, response):
x = HtmlXPathSelector(response)
item = kickstarteritem()
item['url'] = response.url
item['name'] = x.select("//div[@class='NS-project_-running_board']/h2[@id='title']/a/text()").extract()
item['launched'] = x.select("//li[@class='posted']/text()").extract()
item['ended'] = x.select("//li[@class='ends']/text()").extract()
item['backers'] = x.select("//span[@class='count']/data[@data-format='number']/@data-value").extract()
item['pledge'] = x.select("//div[@class='num']/@data-pledged").extract()
item['goal'] = x.select("//div[@class='num']/@data-goal").extract()
return item
Kodu çalıştırdım ve işe yarıyor. Bu yeni başlatılan tüm projeleri sıyırdı. Tüm projeleri (sadece yeni başlatılanları değil) kazımak istiyorsam, sadece kuralları ve start_urls'ları değiştirebilir miyim? Çok teşekkür ederim. Bu çok büyük bir yardım. Seni ve toplumu ödemek için ne yapabilirim bilmiyorum. İyilik hareketini geçeceğim. –
@ user2167391: Sorun değil. Scrapy gerçekten harika, ama çevrimiçi örnekleri bulmak gerçekten zor. Kickstarter'a gelince, projelerinin hepsine * ulaşmayı zorlaştırıyorlar, böylece hepsinin nerede bulunduğunu görmeniz gerekecek. – Blender