【问题标题】:Are there any building blocks for a search engine that will scrape other sites?搜索引擎是否有任何构建块可以抓取其他网站?
【发布时间】:2009-06-19 02:32:34
【问题描述】:

我想为一件特定的事情构建搜索服务。这些数据可以通过免费的分类服务和许多其他网站免费获得。

是否有任何构建块,例如我可以定制的开源爬虫——而不是从头开始构建,我可以使用吗?

对构建这样的产品有什么建议吗?不仅仅是技术,还有我可能需要考虑的任何隐私/法律问题。

例如如果我从很多地方获得结果,我是否需要在结果的来源处“给予信任”并放置原始链接?

编辑:顺便说一句,我在前端使用带有 JS 的 GWT,还没有决定后端的语言。 PHP或Python。想法?

【问题讨论】:

    标签: search search-engine web-crawler


    【解决方案1】:

    你可以使用python中的几个块。

    1. beautifulsoup [http://www.crummy.com/software/BeautifulSoup/] 用于解析 HTML。它也可以处理糟糕的代码,而且它的 API 非常简单……对我来说比任何类似 DOM 的工具都要好。我的朋友用它成功地抓取了他的旧 phpbb 论坛。它有很好的文档。
    2. mechanize [http://wwwsearch.sourceforge.net/mechanize/] 是一个模拟网络浏览器的 http 客户端库。它处理cookies、填写表格等。也易于使用,但如果您了解 http 的工作原理,它会有所帮助。
    3. http://dev.scrapy.org/ -- 这是一个相对较新的东西:一个基于 twisted 的完整抓取框架。我没怎么玩过。

    我使用前两个来满足我的需要; f.e.需要20行代码就可以得到一个3阶段投票的自动测试工具,模拟等待用户输入数据等等。

    【讨论】:

    • 所以我想我的想法是我将创建一个“屏幕抓取器”并解析 HTML 代码并取出有用的信息,然后将其转储到数据库中?这是一般流程吗?
    • 对我来说它已经足够通用了......我看到的唯一限制是既没有 javascript 也没有 flash 引擎来完全模拟 webbrowser。你可以添加带有spidermonkey绑定的js——我从来不需要那个。
    【解决方案2】:

    我用 Ruby 制作了一个屏幕抓取工具,花了大约 5 分钟。显然this dude 已经缩短到 60 秒!我不确定 Ruby 是否与您所寻找的一样可扩展或快速,但我从未见过更快的方法来实现概念验证或原型。

    秘密是一个名为“hpricot”的库,正是为此目的而构建的。

    我对 PHP 或 Python 或可用于这些开发系统/语言的内容一无所知。

    祝你好运!

    【讨论】:

    • 所以我想我的想法是我将创建一个“屏幕抓取器”并解析 HTML 代码并取出有用的信息,然后将其转储到数据库中?这是一般流程吗?
    猜你喜欢
    • 2010-11-13
    • 1970-01-01
    • 2011-03-23
    • 2012-02-24
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多