网页表格抓取(利用Xpath+GoogleSheet对网页描述的自动以下查询)

优采云 发布时间: 2021-10-18 03:12

  网页表格抓取(利用Xpath+GoogleSheet对网页描述的自动以下查询)

  我们都遇到过在某些时候必须从 网站 中提取数据的情况。例如,当您制作新的购物广告系列时,您可能没有可用于快速制作广告的产品 Feed(产品信息集)。

  理想情况下,我们将以易于导入的文件格式(例如 Excel 或 Google 表格)提供我们需要的内容,例如登录页面、产品名称等。但对于大多数不知道如何进行数据抓取的人来说,广告商可能不得不手动复制粘贴成百上千的产品信息。

  在最近的一份工作中,我被要求从客户 网站 的 15 个页面中下载大约 150 个新产品数据,并将每个产品的名称和着陆页 URL 复制并粘贴到电子表格中。

  手动完成这项工作需要多少时间?这不仅费时,手动浏览这么多内容,而且一一复制粘贴,出错的概率也非常高。这无疑会增加更多的时间来审查文件。

  在这里,SEJ工作人员分享了使用ImportXML结合Google Sheet轻松完成这项工作。

  文章内容

  什么是 ImportXML?

  根据 Google 的解释,ImportXML 可以从以下各种结构化数据类型中的任何一种导入数据:包括 XML、HTML、CSV、TSV、RSS 和 ATOM XML 提要。

  本质上,IMPORTXML 是一个功能,可以让你从网页中抓取结构化数据,例如段落文本、TDK 信息等。过程简单,不需要任何编码基础。

  ImportXML 如何帮助抓取网页元素?

  函数本身非常简单,只需要两个值:

  例如,要从中提取页面标题,我们只需要将以下内容复制并粘贴到 Google Sheet 单元格中:

  ==IMPORTXML(“”, “//title”, “en_US”)

  然后单元格将显示:登月 - 维基百科

  或者,如果我们正在寻找网页的描述,我们可以尝试以下操作:

  =IMPORTXML("","//meta[@name='description']/@content")

  

  使用Xpath + Google Sheet 自动抓取网页描述

  以下是一些较常见的 XPath 查询参考:

  Google Sheet + ImportXML 案例演示

  自从将 IMPORTXML 添加到 Google Sheets 以来,它一直是我们处理许多日常任务的秘密武器。

  此外,该功能还可以结合其他公式来完成一些更高级的数据分析任务。如果没有Google Sheets的ImportXML,可能需要使用Python等方式进行程序抓取。

  在下面的例子中,我们将演示 IMPORTXML 最基本的用法:从网页中获取数据。

  想象一下,我们被要求创建一个内容广告活动。他们希望我们在文章 分类下的最新30 篇文章文章 上投放动态搜索广告。您可能会说这是一项非常简单的任务。不幸的是,网站编辑器无法给我们发送页面数据,并希望我们参考网站页面的内容来制作广告。

  正如我们在文章开头提到的,一种方法是手动打开页面获取并在广告平台中填写,另一种是手动采集信息并将其放入Google Sheets和Excel。需要一一打开网页,复制粘贴信息。但是通过在 Google Sheets 中使用 IMPORTXML,我们可以在很短的时间内实现相同的操作而不会出错。

  第 1 步:创建新的 Google 表格

  首先,我们打开一个空白的 Google Sheets 文档:

  

  从一个空白的 Google Sheets 文档开始。第二步:添加需要爬取的页面地址

  添加我们要从中获取信息的页面(或多个页面)的 URL。在我们的例子中,我们需要抓取内容。

  

  添加要爬取的页面的URL。第 3 步:查找 XPath

  找到要抓取的元素,复制XPath 路径并在ImportXML 函数的第二个参数中使用它。在我们的示例中,我们需要找到 文章 的 30 个最近更新的标题。我们只需要将鼠标悬停在 文章 之一的标题上,右键单击并单击检查。

  

  打开 Chrome WebDev 工具。

  这将打开 Google Chrome 浏览器的开发者工具窗口:

  

  查找并复制要提取的 XPath 元素。

  确保 文章 标题仍处于选中状态并突出显示,然后再次右键单击并选择 Copy> 以复制 XPath。

  第 4 步:将数据提取到 Google 表格中

  返回到您的 Google Sheets 文档并输入 IMPORTXML 函数,如下所示:

  =IMPORTXML(B1,”///*[starts-with(@id,'title')]”)

  有几点需要注意:

  首先,在我们的公式中,我们引用单元格 B1 的第一个参数,而 B1 我们输入要提取数据的网页地址。

  其次,我们从 Chrome 开发者面板复制的 XPath 放在第二个参数中时会用双引号括起来。但是复制的XPath也有双引号,如下:

  (///*[@id="title_1"])

  为了保证前后双引号不会混淆,我们需要将Xpath中的双引号改为单引号,然后放入ImportXML函数中。

  (///*[@id='title_1'])

  请注意,在这个例子中,由于每个文章的页面ID标题都会发生变化(title_1、title_2等),所以我们要稍微修改一下XPath,然后需要使用starts- with函数获取页面上ID名称收录'title'的所有元素。

  以下是 Google Sheets 文档的内容:

  

  IMPORTXML 的一个例子。

  输入后,文章的所有标题很快就会返回:

  

  在 Google 表格中导入的标题。

  您也可以使用此方法抓取其他网页上的元素信息。比如抓取文章姓名、文章 URL、摘要、作者姓名等。

  如果要抓取网址,我们需要调整查询,使用/@抓取元素的属性。那么完整的Xpath查询如下:

  =IMPORTXML(B1,”//*[starts-with(@id,'title')]/@href”)

  

  导入 文章 链接

  输入后:

  

  文章 和 Google 表格中导入的 URL

  添加摘要和作者姓名后:

  

  包括摘要和作者姓名在内的所有数据都被抓取并导入到 Google 表格中。结论

  无论是需要爬取文章,还是其他页面元素,包括产品价格或运费等数据,都可以使用Xpath自动获取,出错的可能性很小。

  该工具不仅可用于 PPC 构建广告活动,还可用于需要批量网页数据分析和采集的其他任务,例如 SEO。

  当然,相比Python的数据爬取,Google Sheet爬取数据有一定的局限性。谷歌会给每个Sheet一定比例的抓取,抓取的数量会有一定的限制。Google 这样做的主要目的是避免恶意使用服务器。另外这个功能是免费的,谷歌也会考虑运维成本。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线