我使用scrapy从一个使用这个XML数据的归档文件中爬过OAI-PMH框架。我并不十分熟悉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.metadataPrefix出现在XML中的唯一一次是在第3行:
<request metadataPrefix="ndlkn" verb="ListRecords">有什么办法我可以使用这个网站与Scrapy的“查看”命令?
此外,我在通过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典型的刮擦输出,然后:
>>> 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 view或scrapy shell之后使用引号或转义。这解决了我的两个问题!希望这对未来的任何人都有帮助。
发布于 2013-12-30 19:04:27
我意识到了我的错误。因为URL中有一个&,所以它需要使用引号,或者在scrapy view或scrapy shell之后转义。这解决了我的两个问题!希望这对未来的任何人都有帮助。
https://stackoverflow.com/questions/20831737
复制相似问题