使用Selenium爬取数据后,如何存入变量并转换为DataFrame?
解决方法
你的代码存在两个关键问题:
a = print(title[b].text)完全无效——print()函数返回的是None,而且循环结束后b只会指向最后一个标题元素,只能拿到最后一条数据,没法存储所有爬取结果。- 循环仅做了打印操作,没有把数据收集到可复用的变量里。
要实现「存变量转DataFrame」的需求,你可以按以下步骤修改代码:
步骤1:导入必要库
确保你已经导入pandas(用来生成DataFrame):
import pandas as pd from selenium.webdriver.common.by import By
步骤2:收集所有标题到列表
初始化一个空列表,遍历所有找到的标题元素,把每个元素的文本内容添加进去:
# 定位所有标题元素 titles = table.find_elements(By.CLASS_NAME, 'title--wFj93') # 存储所有标题文本的列表 title_list = [] # 遍历元素并收集数据 for title in titles: text = title.text title_list.append(text) # 可选:打印查看爬取结果 print(text)
或者用更简洁的列表推导式写法:
titles = table.find_elements(By.CLASS_NAME, 'title--wFj93') title_list = [title.text for title in titles]
步骤3:转换为DataFrame
把收集好的列表传入pd.DataFrame(),还可以指定列名让数据结构更清晰:
df = pd.DataFrame(title_list, columns=['标题']) # 查看DataFrame print(df)
这样就能把所有爬取到的标题数据存入变量,最终转换成可用于分析的DataFrame了。
内容的提问来源于stack exchange,提问作者shayan essani
相关产品推荐
相关产品推荐

