首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有“视图”和OAI-PMH的擦伤错误

带有“视图”和OAI-PMH的擦伤错误
EN

Stack Overflow用户
提问于 2013-12-30 00:30:28
回答 1查看 245关注 0票数 0

我使用scrapy从一个使用这个XML数据的归档文件中爬过OAI-PMH框架。我并不十分熟悉OAI-PMH会如何影响Scrapy,但是当我使用以下命令时似乎出现了问题:

代码语言:javascript
复制
scrapy view http://fukushima.archive-disasters.jp/infolib/oai_repository/repository?verb=ListRecords&metadataPrefix=ndlkn

一个记事本文件不是打开在我的浏览器中的网站,而是打开以下内容:

代码语言:javascript
复制
    <?xml version="1.0" encoding="UTF-8" ?>
    <OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"> <responseDate>
    2013-12-30T00:11:45Z</responseDate>
    <request>http://fukushima.archive-disasters.jp/infolib/oai_repository/repository</request>
    <error code="badArgument">It is an inaccurate parameter.</error>

以下内容出现在命令行中:

代码语言:javascript
复制
[default] INFO: Spider closed (finished)
'metadataPrefix' is not recognized as an internal or external command, operable program or batch file.

metadataPrefix出现在XML中的唯一一次是在第3行:

代码语言:javascript
复制
<request metadataPrefix="ndlkn" verb="ListRecords">

有什么办法我可以使用这个网站与Scrapy的“查看”命令?

此外,我在通过scrapy shell访问XML数据本身时也遇到了困难。在以前版本的scrapy中,在使用remove_namespaces()之后,我可以使用sel.xpath('//record')访问页面上的所有记录,但是现在生成[]和我很难找到所需的正确xpath。

下面是下面的命令:

代码语言:javascript
复制
scrapy shell http://fukushima.archive-disasters.jp/infolib/oai_repository/repository?verb=ListRecords&metadataPrefix=ndlkn

典型的刮擦输出,然后:

代码语言:javascript
复制
    >>> sel.remove_namespaces()
    >>> sel.xpath('//record')
    []
    >>> sel.xpath('//OAI-PMH')
    [<Selector xpath='//OAI-PMH' data=u'<OAI-PMH xmlns="http://www.openarchives.'>]
    >>> sel.xpath('//OAI-PMH/request')
    [<Selector xpath='//OAI-PMH/request' data=u'<request xmlns="http://www.openarchives.'>]
    >>> sel.xpath('//OAI-PMH/ListRecords')
    []

我需要使用什么路径?

很抱歉有这么长的问题。我只是担心这两个问题是有联系的,而且OAI-PMH在这里造成了问题。请让我知道,如果我应该打破这一点或任何其他方式,我可以说得更清楚。

编辑:我觉得自己太笨了,但我意识到了这个问题。因为URL中有一个&,所以它需要在调用scrapy viewscrapy shell之后使用引号或转义。这解决了我的两个问题!希望这对未来的任何人都有帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-30 19:04:27

我意识到了我的错误。因为URL中有一个&,所以它需要使用引号,或者在scrapy viewscrapy shell之后转义。这解决了我的两个问题!希望这对未来的任何人都有帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20831737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档