Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to load website HTML using jquery

How can I load some website in my java-script so that I can parse it? I want to get Html of e.g. www.google.com and I want to select all the tags in it using jquery.

like image 849
Emmad Zahid Avatar asked Oct 03 '14 18:10

Emmad Zahid


2 Answers

You can't as jquery doesn't allow you to load external resources, unless in the page you want to parse is present the header:

header('Access-Control-Allow-Origin: http://thesitewhereyourjscodeishosted');

If you can't set it, you could use PHP:

<script>
var website = <?php echo file_get_contents("http://websitetoload"); ?>;
</script>
like image 164
Stubborn Avatar answered Nov 01 '22 12:11

Stubborn


Due to browser security restrictions, Ajax requests are subjected to the same origin policy; the request can not be successfully retrieve data from a different domain, subdomain, port, or protocol.

But you can build a script on your server that requests that content or can use a proxy, then use jQuery ajax to hit the script on your server.

Working Fiddle

It's just proxying a request through Yahoo's servers and getting back a JSONP response even if the requested server doesn't support JSONP.

HTML:

<div id="example"></div>

JavaScript

$('#example').load('http://wikipedia.org');

Here is a similar question like yours Ways to circumvent the same-origin policy?

good luck!

like image 42
Aamir Shahzad Avatar answered Nov 01 '22 13:11

Aamir Shahzad