【问题标题】:Web crawling for multiple websites with different structures [closed]具有不同结构的多个网站的网络爬网[关闭]
【发布时间】:2017-04-30 23:59:05
【问题描述】:

我想在具有不同结构的多个网站上进行网络爬网以查找特定数据。但是,我有一些关键字可以帮助我找到我想要的东西。更清楚地说,我想从一所大学的网站中提取教授姓名列表,并将其循环到给定的大学列表中。此处的关键字可以是他们姓名前的“Professor”或“Prof”或“Dr”一词,以及姓名后的电子邮件。但是,处理每个网站具有的不同 html 结构有点挑战性。

你有什么建议?

【问题讨论】:

    标签: html web-scraping scrapy web-crawler jsoup


    【解决方案1】:

    视情况而定。

    选项 1:如果“多个网站”意味着少数(可能多达 10 个),您可以尝试为每个网站构建单独的抓取工具。

    优势:您会得到准确的结果,而且您​​会得到所有的结果。

    缺点:每当一个站点发生变化时,刮板就会中断并需要调整,当有 100 个或更多站点时,这将是太多的工作。

    选项 2:如果“多个网站”意味着很多网站,那么为每个网站构建一个抓取工具很可能过于昂贵。在这种情况下,我能想到的唯一其他选择是构建一个通用爬虫来爬取所有网站,然后对结果运行 NLP 算法以提取您需要的数据。

    我在最近的一个类似的问题中概述了这种基于 NLP 的处理管道的外观:How to crawl thousands of pages using scrapy?

    优点:一旦运行并进行微调,无论有 100 或 1000 个站点需要处理,并且在站点更改时非常健壮。

    缺点:启动和运行它比编写爬虫更困难,而且你永远不会得到 100% 的结果,也不会 100% 准确。

    于 2020/04 年添加选项 3: 在某些市场中,您会发现少数专门的内容管理系统或网站模板非常常见,并且遵循帕累托规则 / 80/20 规则,您通常可以覆盖 60-80%只需实施少数专门的抓取工具,即可覆盖所有网站。

    优势:您可以获得准确的结果,并且您可以获得所有结果,并且仍然可以覆盖大部分 100 或 1000 多个看似不同的网站。

    缺点:只有当大多数网站之间有足够的共同点时,这才有效,如果少数专业(内容管理)系统在这个“市场”中普遍存在,通常会发生这种情况

    【讨论】:

    • 选项 2 正是我想要的。请问我在哪里可以找到这种包装的样品?或者至少,我应该从哪里开始?我不是编程专家,我敢打赌你已经从我的问题中猜到了。因此,我们将不胜感激。
    • 不幸的是,没有针对此类系统的现成软件包,因为此类系统非常复杂,必须针对每个领域进行调整和培训。当我构建这样的系统时,通常需要花费 2-3 个月的几个人周时间。如果您对编程有基本的了解并想学习如何做到这一点,那么一个好的起点是学习 NLP(自然语言处理)的基础知识。这方面有很多好书。
    • 非常感谢。我实际上已经找到了这个 [nltk.org/book/],并且很高兴看到我能用它做什么。
    • 不客气。如果对您有帮助,请将我的回答标记为已接受。
    猜你喜欢
    • 2015-03-01
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    相关资源
    最近更新 更多