Альтернатива скриптовому языку на стороне сервера для очистки - PullRequest
0 голосов
/ 02 апреля 2012

У меня есть небольшой сайт, размещенный в моем университете. Политика заключается в том, что ни один язык сценариев на стороне сервера (например, PHP и т. Д.) Не включен, поэтому веб-сайты либо статичны, либо могут использовать сценарии на стороне клиента (например, javascript и т. Д.). Я также не могу коснуться сервера / настроить его / установить вещи.

Во всяком случае, я хотел добавить некоторые данные с других веб-сайтов (а именно, цитаты из google scholar), которые мне удалось динамически обработать с помощью Python + lxml. Можно ли как-то динамически запрашивать эти данные - конечно же, на стороне клиента?

Я пытался использовать IronPython для встраивания своего кода Python в мою веб-страницу, но он жаловался на невозможность найти импортированную библиотеку lxml. Но подобное решение было бы здорово. Или библиотека на чистом javascript, которая позволяет открывать и анализировать внешние веб-страницы ...?

Спасибо!

Ответы [ 3 ]

4 голосов
/ 02 апреля 2012

Нет. та же политика происхождения предотвращает это.

Либо используйте сторонний прокси-сервер, который будет транскодировать данные в JSON-P, либо используйте другой хост.

В качестве альтернативы, используйтезадание cron, запущенное на сервере, которым вы управляете, которое периодически генерирует новый статический HTML и загружает на ваш хост.

0 голосов
/ 02 апреля 2012

Учитывая ограничение сервера, я бы запускал эти сценарии локально для генерации HTML и помещал этот статический вывод на ваш сервер.

0 голосов
/ 02 апреля 2012

Хитрость в том, что вы столкнетесь с политикой Same Origin , которая в значительной степени запрещает вашему клиентскому коду доступ к контенту сайтов, которые не имеют того же происхождения, что и ваша страница.Существуют такие вещи, как CORS , которые разрешают разные вещи, но пользователь должен использовать браузер, который его поддерживает, и сайт, с которого вы пытаетесь загрузить данные, должен его поддерживать (иразрешить доступ к вашей странице или разрешить доступ ко всем страницам) на уровне сервера.

Так что вам, вероятно, понадобится решение на стороне сервера - но это не обязательно означает, что ваш сервер должен предоставить его.Если на сайтах вы собираете информацию из службы поддержки JSON-P , то вы можете использовать ее без проблем с SOP.Если нет, вы можете использовать службу типа YQL , как описано в этой статье для , используя YQL в качестве междоменного прокси .

Если ничего из этогоработает для вас (и вы не можете выполнять работу cron, поскольку Квентин умело предложил ), я просто укажу, что веб-хостинг на PHP является обильным товаром и, следовательно, очень дешевым.Мол, дешевле, чем цена чашки кофе в месяц дешево.Я видел его по цене менее 2 долл. / Мес. (Самое дешевое, что я мог найти сейчас за 20 секунд поиска, составляло 2,49 долл., Но я знаю, что видел лучше).Таким образом, вы можете либо переместить сайт, либо, если это важно для адреса университета, предоставить себе интерфейс JSON-P с сервера типа «чашка кофе», который затем используется клиентским кодом сайта вашего университета.

...