Pandas(DataFrame):如何在新行中写入新数据

2024-10-03 09:14:36 发布

您现在位置:Python中文网/ 问答频道 /正文

import pandas as pd 
import requests
import time
from time import ctime
from bs4 import BeautifulSoup
count=0

while(1):
    page =requests.get("https://www.flipkart.com/apple-iphone-11-black-64-gb/p/itm0f37c2240b217?pid=MOBFKCTSVZAXUHGR&lid=LSTMOBFKCTSVZAXUHGREPBFGI&marketplace=FLIPKART&srno=s_1_1&otracker=AS_QueryStore_OrganicAutoSuggest_4_5_na_na_na&otracker1=AS_QueryStore_OrganicAutoSuggest_4_5_na_na_na&fm=SEARCH&iid=7152a9e3-bb03-43e4-883d-b366d856ad66.MOBFKCTSVZAXUHGR.SEARCH&ppt=sp&ppn=sp&ssid=tn7ys3sre80000001595289428691&qH=f6cdfdaa9f3c23f3")
    soup = BeautifulSoup(page.content, 'html.parser')
    product_name = soup.find(class_='_35KyD6').get_text()
    price = soup.find(class_='_1vC4OE _3qQ9m1').get_text()
    product_details = pd.DataFrame({
        'Name':product_name,
        'Price':price,
        'Time':time.ctime()}, 
        index=[count])
    product_details.to_csv('flipkart_scrapper.csv')
    
    count+=1
    print(count)
time.sleep(1)

当我打印产品详细信息时,我会每秒以递增的索引和时间获取价格,但当我尝试将其写入CSV时,只会显示一行


Tags: fromimportgettimecountpageproductrequests
1条回答
网友
1楼 · 发布于 2024-10-03 09:14:36

您不应在每次迭代时创建新的csv文件(覆盖现有文件),而应使用以下方法附加到现有文件:

product_details.to_csv('flipkart_scrapper.csv', mode='a', header=False)

要获取头文件-在while循环之前,只需将头文件存储在输出文件中

相关问题 更多 >