2010-07-14 117 views
0

去年,我在一些perl程序中进行了简单的搜索。我写的第一件事是一个简单的脚本,它使用一个网页,并找出该页面上的单词或名称的次数。我把这称为“爬行”是否正确?我想知道如果这是其他语言如PHP和ROR的本地进程。基本上,我想为没有公共“API”的站点构建我自己的“API”,并可能从另一个站点的另一个“API”动态传递关键字(仅用于读取和组织公开数据)。对不起,我的头最近刚刚进入云端的抽象程度很高。“抓取”关键字的页面/网站

回答

4

你的问题是非常容易理解的,事实上很多人/公司已经做到了,但是你很久以前就没有做过。松散地说,“爬行”通常指的是使用html页面中的锚标签作为节点之间的边缘的互联网的宽度或深度首次搜索。

你在perl中做了什么基本上只是搜索了一个html字符串。

对于您的API,我会建议找到一个DOM解析器,以便您不必打扰解析html字符串和生成的固有错误。

几年前我开始为马萨诸塞州的公寓价格区域生成一些数据,所以我写了一些爬行程序来提取craigslist上的所有公寓列表并将它们扔在数据库中。

如果有人有兴趣,我可以继续,但它超出了这个答案的范围。

喔是啊,这是在PHP ...

+0

刚刚看了我的代码,我用了原生的“DOMDocument”类:http://php.net/DOMDocument – umassthrower 2010-07-14 03:45:33

+0

这里是我提到的类的txt。 我不记得我是否在写这篇文章的时候小心谨慎,而且有几个地方我对硬件进行了硬编码,但我希望这是一个很好的例子,可以帮助您开始。 http://jeffreyjason.com/Craigslist.class.php.txt http://jeffreyjason.com/HTMLParser.class.php.txt 注意:我没有在这里发布任何数据,严格获取。 – umassthrower 2010-07-14 03:53:57

+0

非常感谢我认为我现在明白了很多。 – ThomasReggi 2010-07-14 15:12:41

2

如果我理解正确的话,你想采取一个URL,它传递给你的程序,并把它抓取网站寻找用户提供的关键字?

如果这是正确的,那么不,这不是任何语言的本地进程,你将不得不自己编写必要的逻辑。每个语言/框架(请注意,ROR不是一种语言,它是一个基于Ruby语言构建的框架)有一些工具可以帮助你(例如,在Ruby中,你应该看看Nokogiri gem解析HTML),但你将不得不提供大部分的逻辑。

这不是一件很难做的事情,但这需要花费一些时间和精力。祝你好运。