鱼C论坛

 找回密码
 立即注册
查看: 1667|回复: 8

[已解决]scrapy储存不了数据

[复制链接]
发表于 2017-10-24 20:58:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
setting.py

items.py
CX1RC13884DE(B`IJKV68CN.png
pipelines.py
LGVMKJ(VT`}ZG~[DVWX{R@9.png
D:\scrapy\mypjt\mypjt\spiders\weisuen.py
342]7AA]SKSGG2P058H0WB0.png
会自动创建一个data.txt  但是里面没有数据
C`BO$_[I8JW_6GQTC`1L@NB.png
最佳答案
2017-10-25 08:54:51
spider里面不是应该return item的嘛,为啥是print(item)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-10-25 08:54:51 | 显示全部楼层    本楼为最佳答案   
spider里面不是应该return item的嘛,为啥是print(item)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-25 11:18:11 | 显示全部楼层
因为回调函数parse把response进行解析的时候,你的item['title']获取的是一个selectorlist对象,应该改写成
  1. item['title'] = response.xpath('/html/head/title/text()').extract()
复制代码

来获取你要提取的信息给item['title']
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-26 09:16:48 From FishC Mobile | 显示全部楼层
scalper 发表于 2017-10-25 11:18
因为回调函数parse把response进行解析的时候,你的item['title']获取的是一个selectorlist对象,应该改写成 ...


对,我不理解.extract是啥意思,查了也是说获取meta对象,那到底是啥意思。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-26 09:17:38 From FishC Mobile | 显示全部楼层
ooxx7788 发表于 2017-10-25 08:54
spider里面不是应该return item的嘛,为啥是print(item)

下面有个return的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-26 09:46:52 | 显示全部楼层

我是说倒数第二张图片里面
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-26 09:50:32 | 显示全部楼层
1258187869 发表于 2017-10-26 09:16
对,我不理解.extract是啥意思,查了也是说获取meta对象,那到底是啥意思。
  1.     def extract(self):
  2.         """
  3.         Call the ``.extract()`` method for each element is this list and return
  4.         their results flattened, as a list of unicode strings.
  5.         """
  6.         return [x.extract() for x in self]
复制代码


这是选择parsel库的selector.py里的关于类selectorList的extract方法的定义,它是返回一个列表,其中x是selector类的实例,它自己的extract方法具体实现也贴出来

  1.     def extract(self):
  2.         """
  3.         Serialize and return the matched nodes in a single unicode string.
  4.         Percent encoded content is unquoted.
  5.         """
  6.         try:
  7.             return etree.tostring(self.root,
  8.                                   method=self._tostring_method,
  9.                                   encoding='unicode',
  10.                                   with_tail=False)
  11.         except (AttributeError, TypeError):
  12.             if self.root is True:
  13.                 return u'1'
  14.             elif self.root is False:
  15.                 return u'0'
  16.             else:
  17.                 return six.text_type(self.root)
复制代码


总之具体就是经过一系列的处理,返回的就是你text()的内容,你可以用shell状态下进行解析实验,实在想弄懂处理过程,就建议根据上面的分析方法一层层解析
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-26 19:36:49 | 显示全部楼层
ooxx7788 发表于 2017-10-26 09:46
我是说倒数第二张图片里面

咦  可以了  谢谢你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-26 19:37:57 | 显示全部楼层
scalper 发表于 2017-10-26 09:50
这是选择parsel库的selector.py里的关于类selectorList的extract方法的定义,它是返回一个列表,其中 ...

好的 谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 09:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表