网页表格抓取(利用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 这样做的主要目的是避免恶意使用服务器。另外这个功能是免费的,谷歌也会考虑运维成本。