如果我的理解正确,这可能会有所帮助。这将从网站 goo-net-exchange.com/catalog/NISSAN__BLUEBIRD 上的所有表中获取所有数据,并附加到一个表中。
在 Power Query 中,单击主页 > 新源 > 其他源 > Web。然后输入你的链接并点击确定:
然后点击文件夹,点击确定。
然后过滤掉不是表格的 Source。
然后右键单击数据列的标题并删除其他列。
然后点击展开所有表格。
点击确定。
*****在您的评论/问题后添加*****
我进入 Power Query 并打开了从上述活动创建的查询。然后我将 Source 行中的 "http://www.goo-net-exchange.com/catalog/NISSAN__BLUEBIRD/" 更改为 Site,因此该行现在显示为:Source = Web.Page(Web.Contents(Site)),。
然后我在代码中的原始 let 上方插入这两行,仍然保留原始 let (所以现在有两个 let)行:
let
Source = (Site) =>
然后我在原来的最后一行代码下面插入了这两行:
in
Source
这四行代码把我之前的东西变成了一个函数。
接下来,我将查询重命名为 CarSites...只是因为我喜欢它。
然后我确保所有内容都已保存并返回到 Excel。
在 Excel 中,我用您的三个网站的 URL 制作了一个新表格:
我将表命名为 Table1。
然后我单击表 (Table1),然后单击数据 > 从表以从该表在 Power Query 中创建另一个查询。
然后我点击添加列>调用自定义函数,并设置如下条目,然后点击确定:
它给了我这个:
CarSites 列中的每个表都是 LinkURL 列中列出的每个站点的附加表的集合(就像您之前对 Nissan BlueBird 站点所做的那样)。您可以删除 LinkURL 列并展开 CarSites 列以获取所有站点的一个附加列。
根据我从表格信息中看到的信息,您仍然需要做一些工作来使用您提取的这些信息进行清理。例如,这些表格并不容易表明每条线路提供的信息是哪辆车和哪一年。您需要弄清楚如何将名称和年份映射到每一行。
您需要在函数中完成这项工作。
祝你好运!
如果有帮助,这是我的 M 代码:
对于 CarSites 功能:
let
Source = (Site) =>
let
Source = Web.Page(Web.Contents(Site)),
#"Filtered Rows" = Table.SelectRows(Source, each ([Source] = "Table")),
#"Removed Other Columns" = Table.SelectColumns(#"Filtered Rows",{"Data"}),
#"Expanded Data" = Table.ExpandTableColumn(#"Removed Other Columns", "Data", {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "MODEL TYPE", "MODEL", "ENGINE", "DOOR", "T/M DRIVE", "Dimension", "WEIGHT", "MSRP", "Find Used Cars"}, {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "MODEL TYPE", "MODEL", "ENGINE", "DOOR", "T/M DRIVE", "Dimension", "WEIGHT", "MSRP", "Find Used Cars"})
in
#"Expanded Data"
in
Source
对于 Table1 查询:
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Invoked Custom Function" = Table.AddColumn(Source, "CarSites", each CarSites([LinkURL]))
in
#"Invoked Custom Function"