Scrapy ошибки с "view" и OAI-PMH
Я использую 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 "view"?
Кроме того, у меня также возникают проблемы с доступом к самим данным XML через оболочку scrapy. В предыдущей версии 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')
[]
Какие xpath мне нужно использовать?
Извините за длинный вопрос. Я просто обеспокоен тем, что эти две проблемы связаны и что OAI-PMH вызывает проблемы здесь. Пожалуйста, дайте мне знать, если я должен разбить это или любым другим способом, которым я могу сделать это более ясным.
РЕДАКТИРОВАТЬ: Я чувствую себя очень глупо, но я понял проблему. Потому что есть &
в URL, он должен быть в кавычках или экранироваться после вызова scrapy view
или же scrapy shell
, Это решает обе мои проблемы! Надеюсь, что это поможет любому в будущем.
1 ответ
Я понял свою ошибку. Потому что есть &
в URL, он должен быть в кавычках или экранироваться после scrapy view
или же scrapy shell
, Это решает обе мои проблемы! Надеюсь, что это поможет любому в будущем.