中獲取此表中的
紅色和綠色柱狀圖的值。
正如你在Inspect Element中所看到的,他們正在處理一個資料并表示為一個圖表。
現在,我正在努力獲取值,并且總是有一個空陣列作為結果(將它們命名為empty1和empty2)。
以下是我的編碼 :
shareInvestorRequest = requests.get(str('https://www.shareinvestor.com/fundamental/factsheet.html?counter=5259.MY'/span>), headers=header)
shareInvestorParser = BeautifulSoup(shareInvestorRequest.text, 'html.parser')
try:
totalShareholderReturnTable = shareInvestorParser.find('tbody', {'id':'factSheet_totalReturn'}) .findAll('tr')
totalShareholderReturnSelectedRow=[]
for totalShareholderReturnRow in totalShareholderReturnTable[1:] 。
navigatedtotalShareholderReturnColumn = [td.text.strip() for td in totalShareholderReturnRow.findAll("td"/span>) ]
totalShareholderReturnSelectedRow.append(navigatedtotalShareholderReturnColumn)
totalShareholderReturnLimitedTable = pd.DataFrame(totalShareholderReturnSelectedRow,
columns=['Period', 'Dividend Received', 'Capital Appreciation', '', '', '股東總回報'])
i =0
for totalShareholderReturnRow in totalShareholderReturnTable[1:] 。
i = 1 1
selectedColumn = [td.text.strip() for td in totalShareholderReturnRow.findAll("td"/span>) ]
dividendReceived = selectedColumn[1]
capitalAppreciation = selectedColumn[2]
empty1 = selectedColumn[3]
empty2 = selectedColumn[4]
totalSReturn = selectedColumn[5]
print(str(selectedColumn) ' ' str(dividorReceived) ' ' str(dividorReceived) built_in">str(capitalAppreciation) str(empty1) str(empty2) ' '/span> str(totalSReturn) )
print("")
print("============================== TOTAL SHAREHOLDER RETURN ==============================
")
print(totalShareholderReturnLimitedTable)
print("======================================================================================
")
將它們作為結果:
能否請您幫忙? 謝謝!
uj5u.com熱心網友回復:
如果你看一下html源代碼,你會注意到在各自的td標簽內有style屬性的div標簽。其值是類似于width: 8.3%。寬度的值總是正的,所以我根據最后一列的值加上符號。
import requests
from bs4 import BeautifulSoup
response = requests.get('https://www.shareinvestor.com/fundamental/factsheet.html?counter=5259.MY')
soup = BeautifulSoup(response.text, 'html.parser')
TSR_table = soup.find('div', {'id':'sic_factsheet_totalReturn'}) 。 find('table', {"class":"sic_table sic_tableBigCell"})
table_body = TSR_table.find('tbody')
資料 = []
for tr in table_body.find_all('tr') 。
行 = []
for td in tr.find_all('td'):
field = td.string
if not field。
div = td.find('div')
if div:
field = div.get('style')[7:]
if field:
row.append(field)
if row:
row[-2] = f'{row[-1][0]}{row[-2]}'/span>
data.append(row)
print(data)
輸出
[['5 Days', '-', ' 0. 010', ' 8.3%', ' 8.33 %'] 。
['10 Days', '-', ' 0.025', ' 23.8%', ' 23.81 %'] 。
['20 Days', '-', ' 0.045', ' 52.9%', ' 52.94 %'] 。
['3個月', '-', ' 0.020', ' 18.2%', ' 18.18 %'] 。
['6 Months', '-', '-0.075', '-36.6%', '-36.59 %'] 。
['1年', '-', '-0.195', '-60.0%', '-60.00 %'] 。
['2年', '-', '-0.280', '-68.3%', '-68.29 %'] 。
['3年', '-', '-0.275', '-67.9%', '-67.90 %'] 。
['5年', '-', '-0.630', '-82.9%', '-82.89 %'] 。
['年化', '-', '-', '-29.8%', '-29.75 %'] ]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/331289.html
標籤:


