如何才能将网页上的两个或三个“并行”XPath 提取为可以导入电子表格的格式?

如何才能将网页上的两个或三个“并行”XPath 提取为可以导入电子表格的格式?

如何才能将网页上的两个或三个“并行”XPath 提取为可以导入电子表格的格式?

以下是一个例子:https://www.amazon.co.uk/s?rh=n%3A20606777031&language=en_GB&brr=1&pf_rd_i=3012216031&pf_rd_m=A3P5ROKL5A1OLE&pf_rd_p=7accc6fa-9287-4d54-804e-88e159c5cb45&pf_rd_r=P0TZ793D83HJK8616YKC&pf_rd_s=merchandised-search-top-2&pf_rd_t=101&rd=1&ref=uk_outsbcd_1大多数商品都有实际价格和建议零售价。我想将所有价格和建议零售价提取到电子表格中。

获取 RRP 的一个丑陋的 XPath 是

/html/body/div[1]/div[2]/div[1]/div[1]/div/span[1]/div[1]/div[11]/div/div/div/div/div[2]/div[3]/div/a/div/span[2]/span[2]/text()

并获取价格(非小数部分)

/html/body/div[1]/div[2]/div[1]/div[1]/div/span[1]/div[1]/div/div/div/div/div/div[2]/div[3]/div/a/span/span[2]/span[2]/text()

产品名称:

/html/body/div[1]/div[2]/div[1]/div[1]/div/span[1]/div[1]/div/div/div/div/div/div[2]/div[1]/h2/a/span

如果我使用 $x 执行这些 XPath,展开结果,右键单击此处的结果(这是来自 Firefox 控制台的屏幕截图):

Firefox 控制台的屏幕截图

并选择Copy message(在 Firefox 中)我得到如下内容:

Array(39) [ #text, #text, #text, #text, #text, #text, #text, #text, #text, #text, … ]
0: #text "2"
1: #text "7"
2: #text "8"

粘贴到文本编辑器中。

我希望输出格式不需要太多后期处理,然后才能将其插入电子表格。此外,如果我得到很多结果(100+?1000+?),Firefox 不会将它们全部列出。

作为第一步,我想

Array(39) [ #text, #text, #text, #text, #text, #text, #text, #text, #text, #text, … ]
0: #text "2"
1: #text "7"
2: #text "8"

看起来像这样:

2
7
8

也就是说,只有数字/结果,每行一个(然后我可以将其粘贴到电子表格中,每个 XPath 一列,名称将与价格和 RRP 匹配)。

下一步是制作一个包含所有内容的 csv/tsv,如下所示:

prod1,2,7
prod2,7,11
prod3,8,14

(我更喜欢用制表符而不是逗号,但在这里我使用了逗号,因为这样更清晰)

在电子表格中显示如下内容:

姓名 价格 建议零售价
产品1 2 7
产品2 7 11
产品3 8 14

我该怎么做?我想象一个在浏览器控制台中执行的 Javascript 解决方案,其中输入是一个或多个 XPath,而输出是一个字符串,我可以从控制台复制并粘贴到电子表格中(或者该字符串直接插入到剪贴板中?)

由于这是一个我只会在特定站点上使用一次的黑客攻击,所以我准备在之后进行一些手动清理或操作。

我很不擅长使用浏览器控制台和 Javascript……这就是我问这个问题的原因。

(我的最终目标是计算价格变化的百分比)

¹ 如果输入的是一条 XPath,我会执行几次,每次执行后都会将其复制粘贴到电子表格中。如果输入的是两条或更多条 XPath,我只会执行一次。

相关内容