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

如何实现Google搜索首条结果追加至df,批量查找企业可持续发展报告?

代码调整实现方案

你需要调整循环逻辑,遍历数据集的每一行拼接自定义搜索词,同时兼容无搜索结果的异常场景,调整后可运行的完整代码如下:

from googlesearch import search 
import pandas as pd

# 读取原始数据集
df = pd.read_csv('ACgr.csv', index_col=0) 

# 用于存储每条搜索的第一条结果
report_links = []

# 遍历每一行企业数据
for idx, row in df.iterrows():
    # 拼接指定格式的搜索关键词
    query = f"{row['company_name']} {row['company_country']} sustainability report OR Net zero"
    try:
        # 取搜索结果的第一条,pause参数建议不低于2秒,避免触发Google反爬限制
        first_result = next(search(query, tld="com", num=1, stop=1, pause=2))
        report_links.append(first_result)
    except Exception as e:
        # 无搜索结果/触发反爬时填充空值,避免程序中断
        report_links.append(None)
        print(f"企业{row['company_name']}搜索失败,错误信息:{str(e)}")

# 将结果追加到原DataFrame,也可以单独生成新的df
df['sustainability_report_link'] = report_links

# 可选:导出结果到新csv
df.to_csv('ACgr_with_report_links.csv', encoding='utf-8-sig')

print(df)
关键调整说明
  • 替换原有固定查询词的循环逻辑,改为遍历df的每一行,按要求拼接企业专属搜索词
  • 使用next()直接提取搜索返回的第一条结果,避免返回生成器对象无法直接存储的问题
  • 增加异常捕获逻辑,处理无搜索结果、IP被临时限制等异常场景,保证批量运行不中断
  • 最终将搜索结果直接写入原DataFrame的新列,也可按需单独生成新的DataFrame存储结果
注意事项
  • pause参数不要设置过短,否则容易触发Google的反爬机制,导致IP被临时封禁无法继续搜索
  • 如果企业以中文名称为主,可将tld参数调整为com.hk或者cn,更适配中文搜索结果
  • 部分未公开可持续发展/净零报告的企业会返回空值,可后续手动补充对应数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:15:10