首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >抓取网页中的某些数据

抓取网页中的某些数据
EN

Stack Overflow用户
提问于 2010-11-13 08:47:00
回答 1查看 408关注 0票数 0

我们正在创建一个脚本。

本质上,用户输入一个表单字段:3358928 OnSubmit ajax,访问下面的页面,附加用户输入到url的数字字符串。

http://www.fairtrading.qld.gov.au/ftlr/Default.aspx?ResultType=LNum&LNum=3358928

在该url上,是名和姓。我们该如何抓取名字和姓氏,并将其与我们的形式相呼应。

从本质上讲,问题是从页面抓取而来的。

感谢您的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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元素的文本(依赖于不嵌套完全相同的标记的事实):

代码语言:javascript
复制
// 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响应-无论如何,您都需要一个服务器端代理,它将使客户端代码变得更简单。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4170255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档