|
楼主 |
发表于 2023-11-10 22:06
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
各位老师好,我尝试了好几种方法,找到了一个比较笨的解决方法,整体思路就是:
1、对网页进行文本解析,然后进行按文本字符拆分
2、先把这一条记录的大的模块找到的开头的内容,然后进行拆分,之后转换成列表,筛选包含的关键字,最终实现,一条记录,一个大的模块代码。
3、分别用增加列的方法,从整条记录的模块中,提取下面小模块的关键字内容,层层提取,最终得到自己想要的每一个标题,位置,价格等信息。
拆分文本 = Text.Split(web, "<li class=""clear"">"),
转换为表 = Table.FromList(拆分文本, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
筛选的行 = Table.SelectRows(转换为表, each Text.Contains([Column1], "VIEWDATA CLICKDATA")),
已插入分隔符之间的文本 = Table.AddColumn(筛选的行, "分隔符之间的文本", each Text.BetweenDelimiters([Column1], "VIEWDATA CLICKDATA maidian-detail", "</a>"), type text),
已提取分隔符之间的文本 = Table.TransformColumns(已插入分隔符之间的文本, {{"分隔符之间的文本", each Text.BetweenDelimiters(_, "title=""", """"), type text}}),
已插入分隔符之间的文本1 = Table.AddColumn(已提取分隔符之间的文本, "分隔符之间的文本.1", each Text.BetweenDelimiters([Column1], "positionInfo", "</div>"), type text),
已提取分隔符之间的文本1 = Table.TransformColumns(已插入分隔符之间的文本1, {{"分隔符之间的文本.1", each Text.BetweenDelimiters(_, "/"">", "</a>"), type text}}),
已插入分隔符之间的文本2 = Table.AddColumn(已提取分隔符之间的文本1, "分隔符之间的文本.2", each Text.BetweenDelimiters([Column1], "unitPrice", "</div>"), type text),
已提取分隔符之间的文本2 = Table.TransformColumns(已插入分隔符之间的文本2, {{"分隔符之间的文本.2", each Text.BetweenDelimiters(_, "<span>", "</span>"), type text}}),
筛选的行1 = Table.SelectRows(已提取分隔符之间的文本2, each ([分隔符之间的文本] <> "")),
替换的值 = Table.ReplaceValue(筛选的行1,"/平","",Replacer.ReplaceText,{"分隔符之间的文本.2"}),
删除的列 = Table.RemoveColumns(替换的值,{"Column1"}),
替换的值1 = Table.ReplaceValue(删除的列,"元","",Replacer.ReplaceText,{"分隔符之间的文本.2"}),
重命名的列 = Table.RenameColumns(替换的值1,{{"分隔符之间的文本", "标题"}, {"分隔符之间的文本.1", "所属小区"}, {"分隔符之间的文本.2", "单价"}})
in
重命名的列 |
|