Добрый день!
Пытаюсь освоить Scrapy, путем адаптации найденного работоспособного примера под свои нужды.
#! coding: utf-8
__author__ = 'acman'
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors import LinkExtractor
from scrapy.item import Item, Field
from scrapy.contrib.loader import XPathItemLoader
from scrapy.contrib.loader.processor import TakeFirst
from scrapy.selector import HtmlXPathSelector
#
#
class ScrapyTestItem(Item):
title = Field()
imagelink = Field()
url = Field()
price = Field()
field_11 = Field()
class Test03Loader(XPathItemLoader):
default_output_processor = TakeFirst()
class ScrapyTestSpider(CrawlSpider):
name = "test03"
allowed_domains = ["pastelmebel.ru"]
start_urls = ["http://pastelmebel.ru/shop/bedroom-furniture/bedroom-august/the-cabinet-wall-s-83-sfw1w-august-wenge/"]
rules = (
Rule(LinkExtractor(allow=('/bedroom-august/')),
callback='parse_item', follow=True),
)
def parse_item(self, response):
hxs = HtmlXPathSelector(response)
l = Test03Loader(ScrapyTestItem(), hxs)
l.add_xpath('title', "//h1[last()]/text()")
l.add_xpath('imagelink', "//img[1]/@src")
l.add_xpath('price', "//*[@class='itemOtherPricePrice number']/text()")
l.add_xpath('field_11', ".//*[@id='tab-sub-about-features']/table/tbody/tr[1]/td[2]/span")
l.add_value('url', response.url)
return l.load_item()
Так вот, в итоговый вывод не попадает поле field_11, остальные (заголовок, цена, путь картинки) парсятся нормально.
Выражение для Xpath брал из FirePath - там все нормально, валидное.
Что еще может быть?