xml - 如何使用 Xpath 从 BoxOfficeMojo 中提取电影标题
问题描述
因此,我尝试使用 ImportXML 函数在 Google 表格中导入电影标题,该函数希望我给它一个Xpath-query。问题是 BoxOfficeMojo,它的结构非常奇怪,这让我无法弄清楚如何查询。
在 Google Sheets 中一切正常,但我根本无法生成正确的 Xpath 查询,当为 ImportXML-cell 提供链接时,它只给了我电影的标题。
这是我必须处理的:
给定电影的链接(例如https://www.boxofficemojo.com/movies/?page=main&id=ateam.htm)
Google 表格中的 ImportXML 语句 ( https://support.google.com/docs/answer/3093342?hl=en )
- 一个 Xpath 查询(这就是它变得棘手的地方)
我尝试了许多不同的查询,包括当我检查网站时 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 向导提供了足够的信息,以便能够为我提出建议。
提前致谢!
解决方案
正如安德森亲切地建议的那样,使用这个查询:
//font[@size="6"]/b
成功了:)
编辑:
事实证明,有些电影的标题格式会导致结果被分成几个单元格,从而破坏了我的电子表格。
但是,此解决方案似乎适用于所有电影,并且将返回一个仅包含标题的单元格:
=JOIN(" ";IMPORTXML(H81;"(//font[@face='Verdana']/b)[2]"))
推荐阅读
- r - 根据R中另一个矩阵的内容填充矩阵
- javascript - Intl.NumberFormat 返回数字和货币符号通过间距划分的结果
- python - Creating image using barycentric coordinates for three variables
- mysql - Foreign key constraint is incorrectly formed- There is no index in the referenced table where the referenced columns appear as the first columns
- r - Sample 50 rows from 27,000 entries?
- javascript - 如何禁用/防止 iFrame 中的重定向?
- php - Word Press 功能从多站点检索 URL?
- conan - 柯南 libbacktrace 包需要错误的 autoconf 版本
- python - 当适合我的模型时,我得到 ValueError: Input 0 of layer sequence is incompatible with the layer
- javascript - 为什么我的 HTML 代码返回 [object HTMLFormElement]?