如何用XPath从混多国数据的网页表格中提取分国别汽车销量?
汽车销量数据提取方案
核心思路
通过定位国家专属数据区块解决多国数据混排问题,再针对每个区块提取对应年份的销量,最终整合为目标格式。
步骤1:定位各国数据表格
由于页面标题不统一,采用关键词模糊匹配定位不同国家的数据区块:
- 以包含国家名称(如
Europe、China、USA、Canada)的标题/文本为锚点,定位其关联的表格 - 示例XPath(以欧洲数据为例):
该表达式自动匹配“Europe Annual Sales”或其他含Europe的标题,精准定位对应表格。//h3[contains(text(), 'Europe')]/following-sibling::table[1]
步骤2:提取单国年度销量
针对每个国家的表格,提取1990-2023年的销量数据:
- 遍历表格内的行,提取每行的年份(第一个
<td>)和销量(第二个<td>) - 示例XPath(提取欧洲表格的所有年份-销量行):
//h3[contains(text(), 'Europe')]/following-sibling::table[1]//tr[td] - 过滤年份范围:仅保留年份值在1990-2023之间的数据行。
步骤3:数据整合输出
将提取的数据按以下规则整理:
- 每行对应一款车型
- 每列对应一个国家的年度销量(列名格式:
[国家名]_[年份],如Europe_2020、China_2019) - 缺失年份的销量值填空或标记为
0
适配不同页面的注意事项
- 动态识别页面内的所有国家区块:遍历页面中包含国家关键词的标题,自动识别当前页面的国家数据数量
- 忽略标题差异:无需区分“Annual Sales”或“Yearly”,仅通过国家关键词即可定位对应表格
内容的提问来源于stack exchange,提问作者Future
相关产品推荐
相关产品推荐

