You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将XML属性值解析到pandas dataframe?附谷歌搜索XML处理案例

解决方案

问题根源

你的代码返回空DataFrame,核心错误是错误尝试从CompleteSuggestion节点直接获取suggestion data属性。查看目标XML的结构,suggestion是CompleteSuggestion的子标签,data才是这个子标签的属性,而非父节点的属性。

修正后的BeautifulSoup实现

from bs4 import BeautifulSoup
import requests
import pandas as pd

response = requests.get('https://clients2.google.com/complete/search?hl=en&output=toolbar&q=how%20garage%20doors')
bs = BeautifulSoup(response.text, 'xml')
obs = bs.find_all("CompleteSuggestion")

df = pd.DataFrame(columns=['Keyword'])
for node in obs:
    # 定位子标签suggestion并提取data属性
    keyword = node.find('suggestion')['data']
    df = df.append({'Keyword': keyword}, ignore_index=True)

print(df.head())

更高效的pandas原生方案

pandas的read_xml方法可以直接解析XML结构,无需手动遍历节点,代码更简洁:

import pandas as pd
import requests

response = requests.get('https://clients2.google.com/complete/search?hl=en&output=toolbar&q=how%20garage%20doors')
# 通过XPath直接提取所有suggestion标签的data属性
df = pd.read_xml(response.text, xpath='//suggestion')
# 重命名列名更贴合需求
df.rename(columns={'data': 'Keyword'}, inplace=True)

print(df.head())

注意事项

  • Google的这个自动补全API可能存在访问限制,若请求失败,可尝试添加headers={'User-Agent': 'Mozilla/5.0'}模拟浏览器请求
  • 两种方案都能正确提取目标搜索关键词,read_xml更适合处理结构规范的XML数据

内容的提问来源于stack exchange,提问作者user13056765

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 08:10:28