首页 > 解决方案 > 如何使用 Xpath 从 BoxOfficeMojo 中提取电影标题

问题描述

因此,我尝试使用 ImportXML 函数在 Google 表格中导入电影标题,该函数希望我给它一个Xpath-query。问题是 BoxOfficeMojo,它的结构非常奇怪,这让我无法弄清楚如何查询。

在 Google Sheets 中一切正常,但我根本无法生成正确的 Xpath 查询,当为 ImportXML-cell 提供链接时,它只给了我电影的标题。

这是我必须处理的:

我尝试了许多不同的查询,包括当我检查网站时 Chrome 会为我生成的一个,但 BoxOfficeMojo 的结构很奇怪,这意味着我不能使用任何逻辑来创建我的查询。我已经做了几个小时了,我最接近得到正确结果的是这个查询

//*[//table[@border = '0']]/td/font/b

这给了我这个结果:

The A-Team

4

我一生都无法弄清楚,我如何过滤掉电影的标题(在这种情况下是“The A-Team”)。

为了更好地衡量,当我检查网站时,这就是 Chrome 建议的 Xpath:

//*[@id="body"]/table[2]/tbody/tr/td/table[1]/tbody/tr/td[2]/font/b

上面的查询不起作用,只是抛出一个错误,好像查询什么都不返回......

可能的解决方案 我见过一些成功进行 Xpath 查询的人,他们在其中搜索某个短语,并返回该短语之后的内容(看这个:python:xpath 从 boxofficemojo.com 返回空列表)。

但是,我似乎无法弄清楚如何搜索电影的标题,因为它没有被任何文本包围。

抓取像这个标题这样简单的东西的全部意义在于,BoxOfficeMojo 上的标题全年都在变化,我需要确切的标题才能抓取和比较 Google 表格中的数据。

希望我在人群中为 Xpath 向导提供了足够的信息,以便能够为我提出建议。

提前致谢!

标签: xmlxpathweb-scrapinggoogle-sheets

解决方案


正如安德森亲切地建议的那样,使用这个查询:

//font[@size="6"]/b

成功了:)

编辑:

事实证明,有些电影的标题格式会导致结果被分成几个单元格,从而破坏了我的电子表格。

但是,此解决方案似乎适用于所有电影,并且将返回一个仅包含标题的单元格:

=JOIN(" ";IMPORTXML(H81;"(//font[@face='Verdana']/b)[2]"))

推荐阅读