Scrapy错误与“视图”和OAI-PMH

时间:2013-12-30 00:30:28

标签: python xml xpath scrapy oai

我正在使用scrapy从使用this XML data的存档中抓取OAI-PMH framework。我并不十分熟悉OAI-PMH究竟如何影响Scrapy,但是当我使用以下命令时似乎有问题:

scrapy view http://fukushima.archive-disasters.jp/infolib/oai_repository/repository?verb=ListRecords&metadataPrefix=ndlkn

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

    <?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>

以下是命令行:

[default] INFO: Spider closed (finished)
'metadataPrefix' is not recognized as an internal or external command, operable program or batch file.

XML中出现的唯一时间metadataPrefix位于第3行:

<request metadataPrefix="ndlkn" verb="ListRecords">

有什么方法可以使用Scrapy的“view”命令来使用这个网站吗?

另外,我也无法通过scrapy shell访问XML数据。在scrapy的早期版本中,使用remove_namespaces()后,我可以使用sel.xpath('//record')访问页面上的所有记录,但现在生成[]并且我无法找出正确的xpath需要。

以下命令的外观如下:

scrapy shell http://fukushima.archive-disasters.jp/infolib/oai_repository/repository?verb=ListRecords&metadataPrefix=ndlkn

典型的scrapy输出,然后:

    >>> 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')
    []

我需要使用哪些xpath?

很抱歉这个问题很长。我只是担心这两个问题是相关的,OAI-PMH在这里引起了问题。如果我应该打破这个问题或者我可以更清楚地说明任何其他方式,请告诉我。

编辑:我感到非常愚蠢,但我意识到了这个问题。由于网址中有&,因此在调用scrapy viewscrapy shell后,需要引号或转义。这解决了我的两个问题!希望这对未来的任何人都有帮助。

1 个答案:

答案 0 :(得分:2)

我意识到自己的错误。由于网址中有&,因此需要在scrapy viewscrapy shell后引号或转义。这解决了我的两个问题!希望这有助于将来的任何人。