【发布时间】:2011-09-01 18:13:19
【问题描述】:
目前我正在使用scrapy,这是一个基于python的网络爬虫框架。使用 XPATH 从 html 中提取数据。 (我是 python 新手)为了包装数据,scrapy 使用项目,例如
item = MyItem()
item['id'] = obj.select('div[@class="id"]').extract()
当 id 像 print item['id'] 这样打印时,我得到以下输出
[u'12346']
我的问题是这个输出并不总是相同的形式。有时我会得到类似的输出
"[u""someText""]"
这仅发生在文本中,但实际上与其他像 ID 一样正确处理的文本相比,文本并没有什么特别之处。
有人知道引号是什么意思吗?就像我说的那样, someText 像所有其他文本数据一样被抓取,例如来自
<a>someText</a>
有什么想法吗?
编辑:
我的蜘蛛爬取了博客的所有页面。这是确切的输出
[u'41039'];[u'title]
[u'40942'];"[u""title""]"]
...
提取与
item['title'] = site.select('div[@class="header"]/h2/a/@title').extract()
我注意到总是相同的博客文章有这个引号。所以它们不会随机出现。但是文字没有什么特别之处。例如。这个标题产生引号
<a title="Xtra Pac Telekom web'n'walk Stick Basic für 9,95" href="someURL">
Xtra Pac Telekom web'n'walk Stick Basic für 9,95</a>
所以我的第一个想法是,这是因为一些特殊字符,但没有。
只有当项目写入csv时才会发生这种情况,当我在cmd中打印它们时没有引号。
有什么想法吗?
【问题讨论】:
-
字符串是否总是发生这种情况?你能把它分解成一个你可以发布的特定测试用例吗?
-
这些输出是您复制和粘贴的吗?你是在打印某些东西的 reprs 和其他东西的正常 str 版本吗?