Jquery 为某些数据刮取网页

Jquery 为某些数据刮取网页,jquery,Jquery,我们正在创建一个脚本 实际上,用户输入一个表单字段:3358928 在Submit ajax上,访问下面的页面,将用户输入的数字字符串追加到url中 在这个url上,是一个名字和一个姓氏。 我们将如何刮取名字和姓氏,并将其回显到我们的表格中 从本质上讲,这个问题是由刮页引起的 感谢您的帮助。首先,您的web服务器必须设置为代理客户端的所有请求。否则,第三方服务器和访问者的浏览器将必须支持跨域XMLHttpRequest。(Flash/Silverlight同样需要一个crossdomain.x

我们正在创建一个脚本

实际上,用户输入一个表单字段:3358928 在Submit ajax上,访问下面的页面,将用户输入的数字字符串追加到url中

在这个url上,是一个名字和一个姓氏。 我们将如何刮取名字和姓氏,并将其回显到我们的表格中

从本质上讲,这个问题是由刮页引起的


感谢您的帮助。

首先,您的web服务器必须设置为代理客户端的所有请求。否则,第三方服务器和访问者的浏览器将必须支持跨域XMLHttpRequest。(Flash/Silverlight同样需要一个crossdomain.xml文件。)

这正是工作的方式。(这个特定的代理脚本恰好发生在JavaScript上,它对第三方服务器的响应进行编码。)

我注意到特定页面包含一个XHTML doctype,这似乎表明您可以使用原生XMLHttpRequest或jQuery(与AJAX跨域相反)的
responseXML
属性来利用浏览器的XML解析器。不幸的是,这只是另一个输出无效XML的网站-它没有正确地将符号编码为
&

因此,您很可能会求助于正则表达式,这就是。最简单的方法可能是查找
td
元素的文本(取决于没有嵌套完全相同的标记):

//创建regexp对象
var regex=/(.*)/g;
//根据需要多次执行这行代码。
contentsOfNextTd=regex.exec(textofPage)[1];

有点难看,考虑到如果我们有有效的XML来处理它会简单得多。如果您有选择的话,我建议您在自己的服务器上抓取该页面并返回格式良好的JSON或XML响应——无论如何,您需要一个服务器端代理,这样可以简化客户端代码。

该域属于您吗?如果没有,你就不能随心所欲,因为AJAX只能从同一个域检索页面。事实上,Snook.ca和许多其他工具实现了跨域ajax请求。一个这样的例子是Hiya理想,是的,不幸的是,标签被重复了无数次。答得很好,勾选:)
// Creating the regexp object    
var regex = /<td class="BodyFont">(.*?)<\/td>/g;

// Execute this line of code as many times as needed.
contentsOfNextTd = regex.exec(textOfThePage)[1];