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

如何将Python打印的onclick字符串结果转为DataFrame并导出CSV

提取onclick属性中的URL参数并转换为DataFrame导出CSV

步骤说明

  1. 解析每个onclick属性中的HTML字符串,提取包含URL参数的部分
  2. 将URL参数解析为键值对字典
  3. 收集所有字典数据,转换为Pandas DataFrame
  4. 导出DataFrame到CSV文件

完整代码示例

假设你的onclick属性内容是包含URL参数的HTML input标签(例如:<input type="hidden" value="vacancy_id=123&title=Python开发&company=科技公司">),可以用以下代码处理:

from bs4 import BeautifulSoup
import pandas as pd
from urllib.parse import parse_qs

# 存储所有解析后的参数数据
vagas_data = []

for teste2 in Vagas:
    on_click_content = teste2.get('onclick')
    if not on_click_content:
        continue  # 跳过无onclick属性的元素

    # 解析HTML字符串,提取input标签的value属性值
    soup = BeautifulSoup(on_click_content, "html.parser")
    input_element = soup.find("input")
    if not input_element:
        continue

    param_string = input_element.get("value")
    if not param_string:
        continue

    # 解析URL参数字符串为字典,将列表值转为单个值
    param_dict = parse_qs(param_string)
    cleaned_params = {key: value[0] for key, value in param_dict.items()}
    vagas_data.append(cleaned_params)

# 转换为DataFrame
df = pd.DataFrame(vagas_data)

# 导出到CSV文件(utf-8-sig解决中文乱码问题)
df.to_csv("vagas_details.csv", index=False, encoding="utf-8-sig")

特殊情况处理

如果onclick属性是JavaScript代码(例如:onclick="openVacancy('?id=456&dept=技术部')"),可以用正则表达式提取参数部分:

import re

# 替换循环内的解析逻辑
pattern = r"'([^']+)'"  # 匹配单引号包裹的参数内容
match_result = re.search(pattern, on_click_content)
if match_result:
    param_string = match_result.group(1)
    # 后续参数解析、收集逻辑同上

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 15:00:46