Очистка веб-сайта с помощью jQuery и ajax

Я хочу быть в состоянии управлять HTML данного URL. Что-то как очистка HTML. Я знаю, что это может быть сделано с помощью завихрения или некоторой библиотеки очистки. Но я хотел бы знать, возможно ли использовать jQuery, чтобы выполнить получить запрос к URL с помощью ajax и получить HTML URL и выполнить код jQuery возвращенного HTML?

Спасибо

15
задан Joe 20 December 2009 в 18:06
поделиться

4 ответа

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

Решение было бы:

  • иметь какой-то «прокси» на вашем собственном сервере,
  • отправить свой Ajax запрос к этому прокси,
  • который, в свою очередь, получит страницу на другом доменном имени; и верните его в свой JS-код в качестве ответа на запрос Ajax.

Это можно сделать в пару строк практически на любом языке (например, PHP, используя curl, например) ... Или вы можете использовать некоторые функции вашего веб-сервера (см., например, mod_proxy и mod_proxy_http , для Apache)

4
ответ дан 1 December 2019 в 04:17
поделиться

http://www.nathanm.com/ajax-bypassing-xmlhttprequest-cross-domain-restriction/

Единственная проблема связана с безопасностью как в Internet Explorer, так и в FireFox. объекту XMLHTTPRequest не разрешено выполнять междоменные, кросс-протокольные или кросс-портовые запросы.

1
ответ дан 1 December 2019 в 04:17
поделиться

Вместо curl вы можете использовать такой инструмент, как Selenium , который автоматизирует загрузку страницы в браузере. С ним можно запускать JavaScript.

0
ответ дан 1 December 2019 в 04:17
поделиться

Я хотел бы отметить, что бывают ситуации, когда вполне приемлемо использовать jQuery для очистки экранов между доменами. Гаджеты боковой панели Windows запускаются в «зоне локального компьютера», что позволяет выполнять междоменные сценарии.

И jQuery действительно имеет возможность применять селекторы для извлечения HTML-содержимого. Вам просто нужно добавить селектор к параметру url метода load () после пробела.

Приведенный ниже пример кода гаджета проверяет эту страницу каждый час и сообщает общее количество просмотров страницы.

<html>
<head>
    <script type="text/javascript" src="jquery.min.js"></script>
    <style>
        body { 
            height: 120px;
            width: 130px;
            background-color: white;
        };
    </style>
</head>

<body>
Question Viewed:
<div id="data"></div>

<script type="text/javascript">

    var url = "http://stackoverflow.com/questions/1936495/website-scraping-using-jquery-and-ajax"

    updateGadget();

    inervalID = setInterval("updateGadget();", 60 * 1000);

    function updateGadget(){

        $(document).ready(function(){
            $("#data").load(url + " .label-value:contains('times')");
        });

    }

</script>

</body>
</html>
8
ответ дан 1 December 2019 в 04:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: