如何使用Power Query从HTML提取类名?GlassDoor数据爬取问题
解决GlassDoor弹窗星级数据提取问题(Power Query)
核心思路
要实现维度与星级的精准对应,需先绑定维度名称和对应星级的父元素,再从父元素中分别提取维度文本和星级class,最后映射为具体星级评分。
具体操作步骤
定位维度-星级父元素
在Power Query网页数据提取环节,选择包裹维度名称和星级图标的共同父节点(如某层级div)作为提取对象,确保维度与星级的对应关系不会错位。提取维度文本与星级class
对每个父元素,通过Power Query的元素属性和文本提取函数,分别获取维度名称和星级对应的class:// 示例:从父元素中提取维度和星级class starRecord = [ Dimension = elem[Children]{0}[Text], // 提取维度名称(需根据实际HTML结构调整索引) StarClass = elem[Children]{1}[Attributes][class], // 提取星级元素的class属性 Rating = if StarClass = "css-11w4osi" then 5 else if StarClass = "css-xxxxxx" then 4 // 替换为实际四星class else if StarClass = "css-yyyyyy" then 3 // 替换为实际三星class else if StarClass = "css-zzzzzz" then 2 // 替换为实际二星class else 1 ]构建结构化表格
通过List.Transform遍历所有父元素,生成维度-星级的记录列表,再将列表展开为表格,或转置为以维度为列、星级为值的结构化数据,即可清晰呈现每条评论各维度的具体评分。
注意事项
- GlassDoor的HTML结构和class名称可能随网站更新变化,需定期检查并调整提取逻辑中的索引和class映射关系。
- 若父元素的子节点顺序有变动,需同步修改
[Children]{0}、[Children]{1}这类索引值。
内容的提问来源于stack exchange,提问作者faseandisaster
相关产品推荐
相关产品推荐

