请求协助将Hedgefollow网站爬取数据转换为DataFrame
将Hedgefollow爬取数据转换为Pandas DataFrame
直接通过结构化存储表头和数据,再结合Pandas库即可生成DataFrame。以下是修改后的完整代码:
import selenium.webdriver import time import pandas as pd # 引入Pandas库 from selenium import webdriver from selenium.webdriver.common.by import By # 用新定位语法替代旧方法 from selenium.webdriver.firefox.options import Options url = "你的Hedgefollow目标页面URL" # 补充要爬取的页面地址 options = webdriver.FirefoxOptions() options.binary_location = r'C:/Local/Mozilla Firefox/firefox.exe' driver = selenium.webdriver.Firefox(executable_path='C:Desktop/111/geckodriver.exe', options=options) driver.get(url) time.sleep(3) table = driver.find_element(By.ID, 'dgtopHolders') # 提取表头并存储为列表 headers = [] header_row = table.find_element(By.TAG_NAME, 'tr') for cell in header_row.find_elements(By.TAG_NAME, 'th'): headers.append(cell.text.strip()) # 去除文本前后空白字符 # 提取表格数据并存储为二维列表 data = [] for row in table.find_elements(By.TAG_NAME, 'tr')[1:]: # 跳过表头行 row_data = [] for cell in row.find_elements(By.TAG_NAME, 'td'): row_data.append(cell.text.strip()) data.append(row_data) # 生成DataFrame df = pd.DataFrame(data, columns=headers) print(df) # 可选:将数据保存为CSV文件 # df.to_csv('hedgefollow_holders.csv', index=False) driver.quit() # 关闭浏览器进程
关键修改说明:
- 新增
pandas库导入,这是生成DataFrame的核心依赖 - 替换旧版Selenium定位语法:用
By.ID、By.TAG_NAME替代find_elements_by_tag_name这类已弃用的方法,提升代码兼容性 - 结构化存储数据:
headers列表存储所有表头文本,作为DataFrame的列名data二维列表存储每一行的单元格内容,对应DataFrame的行数据
- 通过
pd.DataFrame(data, columns=headers)直接生成结构化表格数据
注意事项:
- 必须补充
url变量的具体值,替换为你要爬取的Hedgefollow页面地址 - 若页面加载速度慢,可调整
time.sleep(3)的等待时长,或改用WebDriverWait实现显式等待(更高效) - 空单元格会被处理为空字符串,Pandas会自动识别这类数据
内容的提问来源于stack exchange,提问作者Agustos Imola
相关产品推荐
相关产品推荐

