2024-09-28 01:23:54 发布
网友
我有这个密码。当我使用yField请求进一步的链接时,我得到了这个错误
Spider must return Request, BaseItem or None, got 'dict'
我什么都试过了,但还是摆脱不了错误
密码在这里
你用的是哪一个版本的scrapy。0.16.2的文档有这样的方法passing items to another callback。在
def parse_items(self, response): hxs = HtmlXPathSelector(response) sites = hxs.select("//li[contains(concat(' ', @class, ' '), ' mod-searchresult-entry ')]") items = [] for site in sites[:2]: item = SeekItem() item['title'] = myfilter(site.select('dl/dd/h2/a').select("string()").extract()) item['link_url'] = myfilter(site.select('dl/dd/h2/em').select("string()").extract()) item['description'] = myfilter(site.select('dl/dd/p').select("string()").extract()) if item['link_url']: request = Request("http://www.example.com/some_page.html", callback=self.parseItemDescription) request.meta['item'] = item return request def parseItemDescription(self, response): item = response.meta['item'] hxs = HtmlXPathSelector(response) sites = hxs.select("//li[contains(concat(' ', @class, ' '), ' mod-searchresult-entry ')]") item['description'] = "mytest" return item
注:这是未经测试的其余代码(蜘蛛,项目.py等等)不见了,我不知道这是怎么运行的
您将产生两次-第一次是请求;第二次是dic。(生成请求(…)和生成项)
我想第二次是不必要的,应该删除。试试看下面的评论。(删除写着yield item的行)
你用的是哪一个版本的scrapy。0.16.2的文档有这样的方法passing items to another callback。在
注:这是未经测试的其余代码(蜘蛛,项目.py等等)不见了,我不知道这是怎么运行的
两个收益率
您将产生两次-第一次是请求;第二次是dic。(生成请求(…)和生成项)
我想第二次是不必要的,应该删除。试试看下面的评论。(删除写着yield item的行)
相关问题 更多 >
编程相关推荐