jQuery: получение / разбор контента с разных сайтов - PullRequest
1 голос
/ 21 августа 2010

Я бы хотел сделать следующее: получать новости с нескольких сайтов, анализировать их содержимое с помощью селекторов jQuery и показывать их на одной странице.

Как это можно сделать с помощью jQuery?

Спасибо.

Ответы [ 6 ]

3 голосов
/ 21 августа 2010

По соображениям безопасности методы AJAX JavaScript (и, следовательно, jQuery) могут получать данные только с URL-адресов в том же домене, что и ваш сайт.

Однако есть некоторые обходные пути. Вы можете использовать серверный скрипт для загрузки удаленного контента для вас - думайте об этом как о прокси. В качестве альтернативы вы можете посмотреть JSONP , но удаленный сайт должен предоставить его.

1 голос
/ 21 августа 2010

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

1 голос
/ 21 августа 2010

Что касается javascript, вы не можете получить контент с других страниц, если они не делятся им явно с помощью API.

Что вы можете сделать, так это использовать cURL на стороне сервера для получения данных с других веб-сайтов, а затем манипулировать ими - на стороне сервера и обслуживать их.

Примечание. Взятие контента, принадлежащего другим лицам, манипулирование им без их согласия и представление в качестве своего собственного - это приглашение к неприятностям.

1 голос
/ 21 августа 2010

Если ваши новости не поступают с сайтов, которые явно предоставляют механизм извлечения контента в соответствии с тем, что вы хотите, вы не можете сделать это с клиента (то есть браузера). Однако вы можете извлечь контент с вашего сервера , а затем передать его клиенту в необработанном состоянии.

1 голос
/ 21 августа 2010

Это невозможно с чистым jQuery или JavaScript, потому что вы не можете извлечь контент из доменов, отличных от того, с которого запускается скрипт. Это мера безопасности для предотвращения межсайтового скриптинга

Но посмотрите здесь возможное решение: Межсайтовый скриптинг (XSS)

0 голосов
/ 22 августа 2010

если веб-сайты, с которых вы пытаетесь получить новости, поддерживают RSS-канал, вы можете использовать плагины jquery, такие как jFeed, для получения RSS, а затем просто отобразить их на своем веб-сайте.

, хотя яРекомендую вам настроить веб-сервис (в asp.net, php и т. д.), который собирает мета-теги rss или scrape на нужных веб-сайтах, а затем использует jquery.get () для получения всех новостей

...