我知道之前也曾发布过类似的问题,但是我还没有找到解决此问题的方法。希望您能提供帮助。
以下是问题的摘要:
我面临的问题是,当将数据框导出到excel时,它会覆盖上一次迭代中的数据。因此,当我运行代码并完成抓取时,我只会从上一次for循环迭代中获取数据。
请告知我需要添加的编码行,以便将所有迭代都捕获到excel工作表中,换句话说,更具体地说,每次迭代都应将数据从第一个空白开始导出到excel行。
以下是代码的摘录:
for i in range(50, 60):
url= (urlA + str(i)) #this is the url generator, URLA is the main link excluding pagination
driver.get(url)
time.sleep(random.randint(3,7))
text=driver.find_element_by_xpath('/html/body/pre').text
data=pd.DataFrame(eval(text))
export_excel = data.to_excel(xlpath)
答案 0 :(得分:1)
感谢Dijkgraaf。您的建议有效。
这是其他人的完整代码(以备将来参考)。
抱歉,无法正确设置字体。无论如何,下面的希望对将来的人有所帮助。
xlpath= "c:/projects/excelfile.xlsx"
df=pd.DataFrame() #creating a data frame before the for loop. (dataframe is empty before the for loop starts)
Url= www.your website.com
for i in irange(1,10):
url= (urlA + str(i)) #this is url generator for pagination (to loop thru the page)
driver.get(url)
text=driver.find_element_by_xpath('/html/body/pre').text # gets text from site
data=pd.DataFrame(eval(text)) #evalues the extracted text from site and converts to Pandas dataframe
df=df.append(data) #appends the dataframe (df) specificed before the for-loop and adds the new (data)
export_excel = df.to_excel(xlpath) #exports consolidated dataframes (df) to excel