def eps_get(request):
if request.method == 'POST':
stockID = request.data.get("StockID",0)
res = requests.get(url+stockID+name,headers = headers)
res.encoding = "utf-8"
soup = BeautifulSoup(res.text,"lxml")
data = soup.find("table",class_="tb-stock text-center tbBasic")
dfs = pd.read_html(data.prettify())
df = dfs[0]
Eps2021Q1 =df.iloc[0,9]
Eps2020Q4 =df.iloc[0,8]
Eps2020Q3 =df.iloc[1,8]
Eps2020Q2 =df.iloc[2,8]
Eps2020Q1 =df.iloc[3,8]
Eps2019Q4 =df.iloc[0,7]
Eps2019Q3 =df.iloc[1,7]
Eps2019Q2 =df.iloc[2,7]
Eps2019Q1 =df.iloc[3,7]
目前是抓固定欄位去取得當年當季的EPS
可是如果這支股票是2013年後上市上櫃的 那麼欄位就會往前移
有想過先抓第一列的年份再取下去的欄位
不過年份的Table跟EPS的Table是分開的
參考網址https://histock.tw/stock/6547/%E6%AF%8F%E8%82%A1%E7%9B%88%E9%A4%98
感謝各位大大解答
抓固定欄位這件事本身就不對吧,
更何況資料不是你能夠控制的,
(除非整個都是自己寫的,
不過那也不用爬了)
應該是要先去判斷年,
然後再去抓資料吧.
不要以行index當做抓取的條件,而是以行名,建議用陣列做正則比對,要是網頁設計人員改名字你就花了,真的找不到就塞空值null或空白