网页抓取-当标记不同时如何抓取?

时间:2018-09-29 11:00:19

标签: web-scraping

我正在尝试编写一个脚本,该脚本将从大学网站上抓取数据,并且想知道当HTML可能因站点而异时如何进行抓取。我们是否需要添加某种智能以使其能够识别并逃离多个站点?

2 个答案:

答案 0 :(得分:0)

您需要提供其他详细信息。有许多可用于解析html的框架,例如BeautifulSoupCheerio等...以及用于检索数据的不同方法,例如selectors和XPath。

答案 1 :(得分:0)

我一直在考虑构建一个网络刮擦框架来刮擦配方网站,这听起来像是您尝试做的事情是相似的,尽管大学代表数据的方式可能更多。

您想要在各个网站上查找的是与所需信息相似的功能。在不知道您要收集的信息的情况下很难给出具体建议,但是例如,如果您想抓取学期日期,那么您将在页面中寻找看起来像日期的文本,最好在页面上有一些文本在某种带有文本(例如“期限”)的标题标签中。

制作一个可以在多个站点上进行管理的程序将很困难,并且取决于您要抓取的数量和频率,最好为自己创建一个框架,在其中可以为每个新的css选择器交换位置现场。

要使某些东西完全自动化,您可能需要创建某种机器学习模型。我对配方站点的计划是使用线性回归为一个元素是该算法正在基于一组功能搜索的元素的概率提供一个值。因此,例如,配方标题可能是页面上最大的标题标签。标头标签越大,标签包含配方标题的可能性就越高。不过,情况并非总是如此,通常最大的标头标记将是博客的名称,因此,为了避免该算法需要查看最大标头标记的冷凝在该域页面上的变化方式。 要训​​练回归模型,您需要一个包含示例的数据集,在示例中您已经手动标记了页面上的元素。

最后,我决定简单地构建一个框架,在该框架中可以检查想要的每个元素的CSS选择器,并使用这些元素在整个网站上运行该算法。