我们正在创建一个脚本。
本质上,用户输入一个表单字段:3358928 OnSubmit ajax,访问下面的页面,附加用户输入到url的数字字符串。
http://www.fairtrading.qld.gov.au/ftlr/Default.aspx?ResultType=LNum&LNum=3358928
在该url上,是名和姓。我们该如何抓取名字和姓氏,并将其与我们的形式相呼应。
从本质上讲,问题是从页面抓取而来的。
感谢您的帮助。
发布于 2010-11-13 09:49:28
首先,您的web服务器必须设置为代理所有客户端的请求。否则,第三方服务器would have to send an Access-Control-Allow-Origin header和访问者的浏览器必须支持跨域XMLHttpRequest。(Flash/Silverlight同样需要crossdomain.xml文件。)
这正是http://ajax-cross-domain.com/的工作方式。(这个特定的代理脚本恰好会对第三方服务器的响应进行JavaScript编码。)
我注意到这个特定的页面包含一个XHTML doctype,这似乎表明您可以使用原生XMLHttpRequest或jQuery (与AJAX Cross Domain相对)的responseXML属性来利用浏览器的XML解析器。不幸的是,这只是另一个输出无效XML的网站-它没有正确地将&符号编码为&。
因此,您很可能会求助于正则表达式,即not ideal。最简单的方法很可能是查找td元素的文本(依赖于不嵌套完全相同的标记的事实):
// 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];有点难看,考虑到如果我们有有效的XML来处理就会简单得多。如果您可以选择,我建议在您自己的服务器上抓取页面并返回格式良好的JSON或XML响应-无论如何,您都需要一个服务器端代理,它将使客户端代码变得更简单。
https://stackoverflow.com/questions/4170255
复制相似问题