Я хочу быть в состоянии управлять HTML данного URL. Что-то как очистка HTML. Я знаю, что это может быть сделано с помощью завихрения или некоторой библиотеки очистки. Но я хотел бы знать, возможно ли использовать jQuery, чтобы выполнить получить запрос к URL с помощью ajax и получить HTML URL и выполнить код jQuery возвращенного HTML?
Спасибо
Вы не можете выполнять Ajax-запрос к другому домену, отличному от того, на котором находится ваш веб-сайт, из-за той же политики происхождения ; это означает, что вы не сможете делать то, что хотите ... По крайней мере, напрямую.
Решение было бы:
Это можно сделать в пару строк практически на любом языке (например, PHP, используя curl, например) ... Или вы можете использовать некоторые функции вашего веб-сервера (см., например, mod_proxy
и mod_proxy_http
, для Apache)
http://www.nathanm.com/ajax-bypassing-xmlhttprequest-cross-domain-restriction/
Единственная проблема связана с безопасностью как в Internet Explorer, так и в FireFox. объекту XMLHTTPRequest не разрешено выполнять междоменные, кросс-протокольные или кросс-портовые запросы.
Вместо curl вы можете использовать такой инструмент, как Selenium , который автоматизирует загрузку страницы в браузере. С ним можно запускать JavaScript.
Я хотел бы отметить, что бывают ситуации, когда вполне приемлемо использовать 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>