当前位置:  开发笔记 > 编程语言 > 正文

ActionScript3中的蜘​​蛛

如何解决《ActionScript3中的蜘​​蛛》经验,为你挑选了1个好方法。

理论上可以在不使用服务器端中间件技术的情况下在ActionScript3中构建蜘蛛吗?没有什么非常先进的(只访问HTML页面并将HTML作为文本返回到swf).



1> weltraumpira..:

编辑 (问题已更新为更具体)

没有有效的策略文件,您无法访问随机域.但是您可以使用ExternalInterface并设置allowScriptAccess = always以在另一个浏览器框架中打开页面并通过JavaScript传递结果数据.

原始答案

从理论上讲,任何可以加载和解析网页的语言都可以用来抓取它们 - 问题是:你想要吗?

这里有几点需要考虑:

    Flash/Flex主要用于客户端应用程序,即提供精细UI功能和/或可视化的程序.虽然它已经发展并演变成一个强大的编程环境 - 这是它最擅长的,所以它应该主要用于它.我的意思是:当然,如果有时间和耐心,你可以用纯汇编语言编写一个Web应用程序 - 但为什么不使用为此发明的工具呢?

    ActionScript当然不是您构建HTML解析器的最快语言.该程序将运行单线程,一次只能在一台机器上运行.扩展可能是通过实施P2P网络完成的,但同样重要:该技术适用于其他方面,并且有一些解决方案可以更好地创建可扩展的搜索机制.

    根据您要抓取的网页类型以及数量,您最终会获得大量数据.迟早,存储,索引和检索您收集的任何数据将比爬行本身更重要.

    如果您选择基于文件工作,则必须至少使用AIR,因为标准ActionScript具有非常有限的文件读/写功能 - 如果没有异步访问方法(如FileStream),您的程序会变慢并且随着时间的推移响应也会降低.

    此外,分布式解决方案将变得更加复杂,因为每个节点都必须保留索引结果的一部分,除了搜索和索引之外,您还必须实现某种查找机制,例如MapReduce.

    因此,您可能希望使用现有的存储技术 - 数据库和/或搜索引擎.

总而言之,我强烈建议列出您希望蜘蛛拥有的重要功能:

谁将与您的计划合作,其目的是什么?

它是否意味着自动运行,或者您是否希望通过某种用户交互来控制它?

您要收集哪种数据,以及如何访问它?

您要存储多少数据,并且您是否拥有可以构建的基础架构?

一旦您回答了这些问题,您应该查看可能有助于您实现部分或全部功能的现有工具,并且只有在您完成之后,才能决定实施无法解决的技术.

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有