我想在具有不同结构的多个网站上进行网页抓取,以查找特定数据。但是,我有一些关键字可以帮助我找到我想要的东西。为了更清楚,我想从大学的网站上提取一份教授名单,并将其循环到一个给定的大学名单上。这里的关键字可以是名字前面的“教授”或“教授”或“博士”字样,也可以是姓名后面的电子邮件。但是,处理每个网站的不同html结构有点挑战。
你的建议是什么?
答案 0 :(得分:5)
取决于。
选项1:如果“多个网站”意味着少数,可能多达十个,您可以尝试为每个网站构建一个单独的抓取工具。
优势:您可以获得准确的结果并获得所有结果。
缺点:每当网站发生变化时,刮刀就会中断并需要调整,当有100多个网站或更多时,这将是太多工作。
选项2:如果“多个网站”意味着真的很多网站,那么为每个网站构建一个刮刀可能太贵了。在这种情况下,我能想到的唯一其他选项是构建一个通用爬虫,它可以抓取所有站点,然后在结果上运行NLP算法,以提取所需的数据。
我在最近的一个类似的问题中概述了这种基于NLP的处理流程是如何形成的:How to crawl thousands of pages using scrapy?
优势:一旦运行并进行微调,无论是否有100个或1000个站点需要处理,并且在站点发生变化时它非常强大。
缺点:启动和运行比编写刮刀更困难,你永远不会获得100%的结果,也不会100%准确。