Я пытаюсь автоматически загрузить некоторые PDF-файлы на сайт (http://bibliotecadigitalhispanica.bne.es) с использованием Python.
Я пытался использовать модули urllib / urllib2 / mechanize (которые я использовал для другихсайты: это включает в себя стандартные функции, такие как urlopen, urlretrieve и т. д.), но здесь ссылки имеют встроенный JavaScript в свои атрибуты href, который выполняет некоторую обработку и открывает файл PDF, который эти модули, по-видимому, не в состоянии обработатьПо крайней мере, из того, что я прочитал здесь. Например, когда я делаю следующее:
request = mechanize.Request('the example url below')
response = mechanize.urlopen(request)
это просто возвращает содержащую HTML-страницу - я просто не могу извлечь PDF (естьна этой странице также нет ссылок на него).
Я знаю, просматривая заголовки в реальном браузере (используя расширение LiveHTTPHeaders в Firefox), что выполняется много HTTP-запросов и в конечном итоге возвращается PDF(и отображается в браузере.) Я хотел бы иметь возможность перехватить это и загрузить его. Конкретно, я получаю серию 302 и 304 ответаes, в конечном итоге приводит к PDF.
Вот пример атрибута ссылки, который я сканирую: href = 'javascript: open_window_delivery ("http://bibliotecadigitalhispanica.bne.es:80/verylonglinktoaccess");'
Кажется, что если я выполнюэтот JavaScript, встроенный в атрибут href, я могу в конечном итоге получить сам документ PDF.Я пробовал с селеном, но это немного сбивает с толку - я не совсем уверен, как использовать его при чтении документации.Может кто-нибудь предложить способ (или через модуль, который я не пробовал, или через тот, который у меня есть), чтобы я мог сделать это?
Большое спасибо за любую помощь с этим.
PS: если вы хотите увидеть, что я пытаюсь воспроизвести, я пытаюсь получить доступ к ссылкам в формате PDF, упомянутым выше, на следующей странице (с пиктограммами PDF) :): http://bibliotecadigitalhispanica.bne.es/R/9424CFL1MDQGLGBB98QSV1HFAD2APYDME4GQKCBSLXFX154L4G-01075?func=collections-result&collection_id=1356