我正在尝试使用Scrapy 0.22
废弃项目,当我将其称为“scrapy crawl events_cinema
”时,此代码无效 - 它显示技术信息且没有抓取内容(已抓取0页......等) )。
问题是当我在scrapy shell中测试xpath时,我的意思是"sel.xpath("//a[@class='title_link']/text()").extract()"
显示正确的结果。
我对其他网站采用了相同的方法,但它确实有效,但在这里我无法弄清楚出了什么问题。
from scrapy.spider import Spider
from scrapy.selector import Selector
from events_rostov.items import EventsRostovItem
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
class EventsCinemaSpider(CrawlSpider):
name = "events_cinema"
allowed_domains = ["afisha.161.ru"]
start_urls = ["http://afisha.161.ru/afisha/cinema/"]
def parse_items(self, response):
sel = Selector(response)
#movies = sel.xpath("//td[@class='event_container']")
#items = []
#for movie in movies:
item = EventsRostovItem()
item["title"] = sel.xpath("//a[@class='title_link']/text()").extract()
item["link"] = sel.xpath("//a[@class='title_link']/@href").extract()
#items.append(item)
return item
答案 0 :(得分:1)
您可能打算使用Spider
而非CrawlerSpider
,否则您必须为其添加一些规则,同时请注意Spider
默认功能为parse
并且不是parse_items