首页 > 解决方案 > 'for' 命令并通过进行网络抓取来用 pandas 填充 excel 表

问题描述

使用 selenium 库,我可以打开并从网站读取一些信息,但是在将这些读取的数据传输到 Excel 表时,我无法用“for command”填充所有表,因为在“for command”结束时和保存后数据框为“csv”,我看到,对于唯一的最后一个 i 数字,数据被放入处理中,对于其他“i”,填充表格被跳过。我不知道那是什么原因。

如何为所有 i 数字填写表格?

我的脚本是:

from selenium import webdriver
import pandas as pd

inpExcelFile = 'sites of svbilgi kizilirmak.csv'
websites = pd.read_csv(inpExcelFile)
#csvfile can be downloaded from 'https://www.evernote.com/shard/s355/sh/3ba4c779-803c-4f5a-b402-a30ec973c48e/75f2c9aea94454e1'

driver = webdriver.Chrome(executable_path=r'D:\chromedriver.exe')

for i in range(1,3): 
    driver.get(str(websites['sitelist'][i]))
    code_and_name=driver.find_element_by_id("Span1").text
    approximate_elevation = driver.find_element_by_xpath("//table[@id='Table3']/tbody/tr[3]/td[2]").text
    df = pd.DataFrame(columns=['code_and_name', 'approximate_elevation']
    df.at[i,'code_and_name']= str(code_and_name)
    df.at[i,'approximate_elevation']= str(approximate_elevation)

df.to_csv('observed_data_list.csv', encoding='ISO-8859-9')         

标签: excelpandasweb-scraping

解决方案


问题是我将“df = pd.Dataframe”定位在内部以获取命令。我只是把它放在外面并放在前面的命令中,然后问题就解决了。


推荐阅读