Orada bir çok ilişkili konu olduğunu biliyorum, ve bana çok yardımcı oldular, ancak hala yolumu alamıyorum. Kodun çalıştırılmasının hatalarla sonuçlanmadığı noktadayım, ancak csv
dosyamda hiçbir şey anlamadım. Sonra, bir web sayfasında başlayan bir köprüyü takip ve bağlantılı sayfayı sıyırıp aşağıdaki Scrapy
örümcek var: Ben bir csv dosyasına sonuçları ihraç etmeye çalışıyorumAşağıdaki köprü ve "Filtrelenmiş site dışı istek"
from scrapy.http import Request
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from scrapy.item import Item, Field
class bbrItem(Item):
Year = Field()
AppraisalDate = Field()
PropertyValue = Field()
LandValue = Field()
Usage = Field()
LandSize = Field()
Address = Field()
class spiderBBRTest(BaseSpider):
name = 'spiderBBRTest'
allowed_domains = ["http://boliga.dk"]
start_urls = ['http://www.boliga.dk/bbr/resultater?sort=hus_nr_sort-a,etage-a,side-a&gade=Septembervej&hus_nr=29&ipostnr=2730']
def parse2(self, response):
hxs = HtmlXPathSelector(response)
bbrs2 = hxs.select("id('evaluationControl')/div[2]/div")
bbrs = iter(bbrs2)
next(bbrs)
for bbr in bbrs:
item = bbrItem()
item['Year'] = bbr.select("table/tbody/tr[1]/td[2]/text()").extract()
item['AppraisalDate'] = bbr.select("table/tbody/tr[2]/td[2]/text()").extract()
item['PropertyValue'] = bbr.select("table/tbody/tr[3]/td[2]/text()").extract()
item['LandValue'] = bbr.select("table/tbody/tr[4]/td[2]/text()").extract()
item['Usage'] = bbr.select("table/tbody/tr[5]/td[2]/text()").extract()
item['LandSize'] = bbr.select("table/tbody/tr[6]/td[2]/text()").extract()
item['Address'] = response.meta['address']
yield item
def parse(self, response):
hxs = HtmlXPathSelector(response)
PartUrl = ''.join(hxs.select("id('searchresult')/tr/td[1]/a/@href").extract())
url2 = ''.join(["http://www.boliga.dk", PartUrl])
yield Request(url=url2, meta={'address': hxs.select("id('searchresult')/tr/td[1]/a[@href]/text()").extract()}, callback=self.parse2)
ama dosya şey olsun. Bununla birlikte, kodu çalıştırmak herhangi bir hataya neden olmaz. Bunun sadece bir URL ile basitleştirilmiş bir örnek olduğunu biliyorum, ancak sorunumu gösteriyor.
Scrapy
ürününe Parse2
yönteminde veri kaydetmek istediğimi bildirmem sorunum olabilir.
BTW, Sen değiştirmeniz gereken scrapy crawl spiderBBR -o scraped_data.csv -t csv
'parse2' aranıyor mu - Eğer yapıp yapmadığını nereden göremiyorum. Bir csv dosyasına yazmayı deneyen bir şey de yok gibi görünüyor. –
@SteveAllison: Ups, bu bir yazım hatası. 'Parse' isteğinde 'parse2' olarak geri arama olarak çağırmam için değiştirdim, ancak hala çalışmıyor. – Mace