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, Это решает обе мои проблемы! Надеюсь, что это поможет любому в будущем.

Другие вопросы по тегам