Простой способ начать, попробуйте jQuery
$("#links").load("/Main_Page #jq-p-Getting-Started li");
Больше на jQuery Docs
Другим способом структурирования экрана гораздо более структурированным является использование YQL или Yahoo Query Language. Он вернет извлеченные данные, структурированные как JSON или xml.
, например
Давайте очистим stackoverflow.com
select * from html where url="http://stackoverflow.com"
даст вам массив JSON (я выбрал эту опцию), как это
"results": {
"body": {
"noscript": [
{
"div": {
"id": "noscript-padding"
}
},
{
"div": {
"id": "noscript-warning",
"p": "Stack Overflow works best with JavaScript enabled"
}
}
],
"div": [
{
"id": "notify-container"
},
{
"div": [
{
"id": "header",
"div": [
{
"id": "hlogo",
"a": {
"href": "/",
"img": {
"alt": "logo homepage",
"height": "70",
"src": "http://i.stackoverflow.com/Content/Img/stackoverflow-logo-250.png",
"width": "250"
}
……..
Прелесть этого в том, что вы можете делать проекции и пункты , которые в конечном итоге позволяют получить структурированные данные и только данные , что вам нужно ( намного меньше пропускной способности по проводам)
например
select * from html where url="http://stackoverflow.com" and
xpath='//div/h3/a'
достанет вам
"results": {
"a": [
{
"href": "/questions/414690/iphone-simulator-port-for-windows-closed",
"title": "Duplicate: Is any Windows simulator available to test iPhone application? as a hobbyist who cannot afford a mac, i set up a toolchain kit locally on cygwin to compile objecti … ",
"content": "iphone\n simulator port for windows [closed]"
},
{
"href": "/questions/680867/how-to-redirect-the-web-page-in-flex-application",
"title": "I have a button control ....i need another web page to be redirected while clicking that button .... how to do that ? Thanks ",
"content": "How\n to redirect the web page in flex application ?"
},
…..
Теперь, чтобы получить только вопросы, которые мы делаем
select title from html where url="http://stackoverflow.com" and
xpath='//div/h3/a'
Обратите внимание на заголовок в проекциях
"results": {
"a": [
{
"title": "I don't want the function to be entered simultaneously by multiple threads, neither do I want it to be entered again when it has not returned yet. Is there any approach to achieve … "
},
{
"title": "I'm certain I'm doing something really obviously stupid, but I've been trying to figure it out for a few hours now and nothing is jumping out at me. I'm using a ModelForm so I can … "
},
{
"title": "when i am going through my project in IE only its showing errors A runtime error has occurred Do you wish to debug? Line 768 Error:Expected')' Is this is regarding any script er … "
},
{
"title": "I have a java batch file consisting of 4 execution steps written for analyzing any Java application. In one of the steps, I'm adding few libs in classpath that are needed for my co … "
},
{
……
Как только вы напишите свой запрос, он сгенерирует для вас URL
http://query.yahooapis.com/v1/public/yql?q=select%20title%20from%20html%20where%20url%3D%22http%3A%2F%2Fstackoverflow.com%22%20and%0A%20%20%20%20%20%20xpath%3D'%2F%2Fdiv%2Fh3%2Fa'%0A%20%20%20%20&format=json&callback=cbfunc
в нашем случае.
Так что в конечном итоге вы делаете что-то вроде этого
var titleList = $.getJSON(theAboveUrl);
и играйте с ним.
Прекрасно , не правда ли?