<更新>
抱歉沒說清楚,舉10次的例子來說
因為10次結果都會不一樣,所以想要將結果都存在一起
但好像都會被覆蓋掉><
for i in range(10):
target = 'ctl00$contentPlaceHolder$dataPager$ctl01$ctl''{:02d}'.format(i)
view_state = soup.find(id='__VIEWSTATE')['value']
event_validation = soup.find(id='__EVENTVALIDATION')['value']
viewstate_generator = soup.find(id='__VIEWSTATEGENERATOR')['value']
form_data = {
'__VIEWSTATE': view_state,
'__VIEWSTATEGENERATOR': viewstate_generator,
'__EVENTVALIDATION': event_validation,
'__EVENTTARGET':target,
'ctl00$contentPlaceHolder$ucCoopVegFruitMarket$radlMarketRange':'A',
'ctl00$contentPlaceHolder$dropProductClass':'1',
'ctl00$contentPlaceHolder$hfldTransVolume':s2,
}
resp = requests.post('url', data=form_data)
df = pd.read_html(resp.text)
df2 = df.append(df)
print(df2)
謝謝froce大的回答
#############################################################
大家好,小弟剛接觸python幾天...
有個簡單的資料儲存問題
for i in range(10):
resp = requests.post('url', data=form_data)
df = pd.read_html(resp.text)
df2 = df.append(df)
print(df2)
這樣只會存到最後兩次,不曉得是哪邊寫錯了
for i in range(10): #每一次做迴圈,都會重作下面程式,等於每次都清空df內容,重新載入,共10次
resp = requests.post('url', data=form_data)
df = pd.read_html(resp.text) #這邊df已經是pandas的dataframe了
df2 = df.append(df) #這邊你df2把他指向 df以外,然後又append一次df,等於做兩次
print(df2)
所以你會得到2次結果,因為你在迴圈跑10次的最後1次裡,存了2次df。
我不懂你要的結果是什麼,同樣的df你要10個?還是一個df裡,資料重複10次?
寫一個範例看是不是你要的。
resp = requests.post('url', data=form_data)
df = pd.read_html(resp.text)
df2 = pd.DataFrame()
for i in range(10):
df2.append(df)
print(df2)
抱歉沒說清楚,舉10次的例子來說
因為10次結果都會不一樣,所以想要將結果都存在一起
但好像都會被覆蓋掉><
for i in range(10):
target = 'ctl00$contentPlaceHolder$dataPager$ctl01$ctl''{:02d}'.format(i)
view_state = soup.find(id='__VIEWSTATE')['value']
event_validation = soup.find(id='__EVENTVALIDATION')['value']
viewstate_generator = soup.find(id='__VIEWSTATEGENERATOR')['value']
form_data = {
'__VIEWSTATE': view_state,
'__VIEWSTATEGENERATOR': viewstate_generator,
'__EVENTVALIDATION': event_validation,
'__EVENTTARGET':target,
'ctl00$contentPlaceHolder$ucCoopVegFruitMarket$radlMarketRange':'A',
'ctl00$contentPlaceHolder$dropProductClass':'1',
'ctl00$contentPlaceHolder$hfldTransVolume':s2,
}
resp = requests.post('url', data=form_data)
df = pd.read_html(resp.text)
df2 = df.append(df)
print(df2)
建議先去查查變數的生命週期,你這樣以後還會遇到一堆問題。
要寫程式的話,該懂的基礎還是得懂。
其實我上面的範例已經回答了你的問題了。
df2 = pd.DataFrame() #df2放在迴圈外,才能在迴圈外存取
for i in range(10):
target = 'ctl00$contentPlaceHolder$dataPager$ctl01$ctl''{:02d}'.format(i)
view_state = soup.find(id='__VIEWSTATE')['value']
event_validation = soup.find(id='__EVENTVALIDATION')['value']
viewstate_generator = soup.find(id='__VIEWSTATEGENERATOR')['value']
form_data = {
'__VIEWSTATE': view_state,
'__VIEWSTATEGENERATOR': viewstate_generator,
'__EVENTVALIDATION': event_validation,
'__EVENTTARGET':target,
'ctl00$contentPlaceHolder$ucCoopVegFruitMarket$radlMarketRange':'A',
'ctl00$contentPlaceHolder$dropProductClass':'1',
'ctl00$contentPlaceHolder$hfldTransVolume':s2,
}
resp = requests.post('url', data=form_data)
df = pd.read_html(resp.text)
df2.append(df) #在df2 append df
print(df2)