【问题标题】:What is difference between crawling, Parsing, Indexing, Search from Python libraries perspective [closed]从 Python 库的角度来看,爬行、解析、索引、搜索有什么区别[关闭]
【发布时间】:2011-09-18 01:16:45
【问题描述】:

我对这些术语感到困惑。他们在我看来是一样的。 有人可以解释一下他们执行的顺序以及哪些库可以完成工作的步骤。对我来说,它们看起来都一样。

我想知道每一步的输入是什么,输出是什么e,g

Crawling
Input = URL
Output = ?

Indexing
Input = ?

【问题讨论】:

  • 这与Python无关。

标签: python django search information-retrieval


【解决方案1】:

您还应该查看Scrapy,一个 django 应用程序:

Scrapy 是一个快速的高级屏幕抓取和网络抓取框架,用于抓取网站并从其页面中提取结构化数据。它可用于广泛的用途,从数据挖掘到监控和自动化测试。

它会爬取站点并提取感兴趣的数据,您可以使用 xpath 定期跨站点指定这些数据,并将其作为新版本保存到数据库中。

【讨论】:

    【解决方案2】:

    我会给你一个概括的描述,算法上,对你的 python 库进行修改。

    爬取:从一组 URL 开始,它的目标是扩大集合的大小,它实际上跟随链接并尝试尽可能多地扩展图(直到它覆盖整个网络-graph 连接到初始 URL 集或直到资源 [通常时间] 到期)。 所以:
    输入 = URL 集
    输出 = 更大的 URL 集,可从输入访问

    索引:使用爬虫收集到的数据“index”文件。 index 实际上是将集合中的每个术语(通常是单词)映射到该术语出现的文档的列表。
    输入:一组 URL
    输出:索引文件/库。

    搜索:使用索引来搜索给定查询的相关文档。
    输入:一个查询(字符串)和索引[通常它是一个隐式参数,因为它是状态的一部分..]
    输出:与查询相关的文档(此处的文档实际上是一个网站,被抓取了...)

    我鼓励你看看PyLucene,它可以做所有这些事情(还有更多!)......并阅读更多关于Information Retrieval的信息

    【讨论】:

    • 感谢阿米特,但我无法完全理解爬行的输出。如果我错了,请纠正我。我认为爬虫找到URLS然后解析页面然后解析的结果是索引。 PyLucene 做所有的 crwaling , indexing , parsing , search
    • @user786783:解析只是解析,它在每个阶段完成:您需要将输入解析为预期的格式:在抓取时您需要解析并获取输出链接,在搜索时您需要解析查询(例如,应该解析 a AND b,因为您不是在寻找单词 AND)。爬虫迭代地寻找新的出链接以增加文档集的大小。尝试阅读有关网络抓取的 wiki 页面以获得更多理解:en.wikipedia.org/wiki/Web_crawler
    • 关于 pyLucene:我知道 java api (Lucene) 与 solar 合并,现在也支持爬取,我不确定 pyLucene 包中是否如此,但我认为是。它绝对支持索引和搜索。
    猜你喜欢
    • 1970-01-01
    • 2013-10-17
    • 2012-02-21
    • 2011-01-17
    • 2013-03-25
    • 1970-01-01
    • 2012-11-01
    • 2012-05-27
    • 2013-08-27
    相关资源
    最近更新 更多