Я сгенерировал таблицу с использованием Python Selenium, и исходный код сгенерированной таблицы выглядит следующим образом (код имеет
<TABLE cellSpacing=0 cellPadding=0 width=806 border=0>
<TBODY>
<TR> <TD width="603" height="25" colspan="4" align="center" bgcolor="#00596B">
<b><font color="#FFFFFF">Day End Summary from Jan 03, 2019 to Jan 01, 2019</font></b> </TD> </TR>
<tr>
<TD vAlign=top align=middle width="603" style="min-height:980px;">
<table border="0" cellpadding="" width="603" bgcolor="#808000" cellspacing="1">
<tr bgcolor="#D6D6D6" height="25">
<td align="center"><font color="#000" size="2">#</font></td>
<td align="center"><font color="#000" size="2">DATE</font></td>
<td align="center"><font color="#000" size="2">TRADING CODE</font></td>
<td align="center"><font color="#000" size="2">LTP*</font></td>
<td align="center"><font color="#000" size="2">HIGH</font></td>
<td align="center"><font color="#000" size="2">LOW</font></td>
<td align="center"><font color="#000" size="2">OPENP*</font></td>
<td align="center"><font color="#000" size="2">CLOSEP*</font></td>
<td align="center"><font color="#000" size="2">YCP</font></td>
<td align="center"><font color="#000" size="2">TRADE</font></td>
<td align="center"><font color="#000" size="2">VALUE (mn)</font></td>
<td align="center"><font color="#000" size="2">VOLUME</font></td>
</tr>
<tr bgcolor="#FFFFFF" height="20">
<td align="center"> <font face="Arial" style="size:11px;">1</font></td>
<td align="center"> <font face="Arial" style="size:11px;">2019-01-03</font></td>
<td align="left"><a href = "displayCompany.php?name=ACI" class='ab1'><font face="Arial" style="size:11px;">ACI</font></a></td>
<td align="right"><font face="Arial" style="size:11px;">328.5</font></td>
<td align="right"><font face="Arial" style="size:11px;">329.9</font></td>
<td align="right"><font face="Arial" style="size:11px;">323</font></td>
<td align="right"><font face="Arial" style="size:11px;">325.7</font></td>
<td align="right"><font face="Arial" style="size:11px;">328.4</font></td>
<td align="right"><font face="Arial" style="size:11px;">325.7</font></td>
<td align="right"><font face="Arial" style="size:11px;">256</font></td>
<td align="right"><font face="Arial" style="size:11px;">5.285</font></td>
<td align="right"><font face="Arial" style="size:11px;">16,158</font></td>
</tr>
<tr bgcolor="#EFEFEF" height="20">
<td align="center"> <font face="Arial" style="size:11px;">2</font></td>
<td align="center"> <font face="Arial" style="size:11px;">2019-01-02</font></td>
<td align="left"><a href = "displayCompany.php?name=ACI" class='ab1'><font face="Arial" style="size:11px;">ACI</font></a></td>
<td align="right"><font face="Arial" style="size:11px;">325.5</font></td>
<td align="right"><font face="Arial" style="size:11px;">328.8</font></td>
<td align="right"><font face="Arial" style="size:11px;">324.3</font></td>
<td align="right"><font face="Arial" style="size:11px;">326</font></td>
<td align="right"><font face="Arial" style="size:11px;">325.7</font></td>
<td align="right"><font face="Arial" style="size:11px;">327.6</font></td>
<td align="right"><font face="Arial" style="size:11px;">289</font></td>
<td align="right"><font face="Arial" style="size:11px;">7.443</font></td>
<td align="right"><font face="Arial" style="size:11px;">22,851</font></td>
</tr>
<tr bgcolor="#FFFFFF" height="20">
<td align="center"> <font face="Arial" style="size:11px;">3</font></td>
<td align="center"> <font face="Arial" style="size:11px;">2019-01-01</font></td>
<td align="left"><a href = "displayCompany.php?name=ACI" class='ab1'><font face="Arial" style="size:11px;">ACI</font></a></td>
<td align="right"><font face="Arial" style="size:11px;">329.1</font></td>
<td align="right"><font face="Arial" style="size:11px;">329.9</font></td>
<td align="right"><font face="Arial" style="size:11px;">325.6</font></td>
<td align="right"><font face="Arial" style="size:11px;">329.9</font></td>
<td align="right"><font face="Arial" style="size:11px;">327.6</font></td>
<td align="right"><font face="Arial" style="size:11px;">326.2</font></td>
<td align="right"><font face="Arial" style="size:11px;">153</font></td>
<td align="right"><font face="Arial" style="size:11px;">3.234</font></td>
<td align="right"><font face="Arial" style="size:11px;">9,890</font></td>
</tr>
</table>
Ссылкастраница здесь Историческая цена на Фондовую биржу Дакки . Теперь, как мне извлечь полную таблицу отсюда? Кажется, что в таблице нет идентификатора и класса. Я совершенно новичок в HTML и поиске в Интернете, и мне нужносделать это для проекта, который имеет очень плотный график. Любая помощь будет признательна.
Обновление: Я мог бы извлечь необходимую таблицу с помощью следующего кода-def extractdse (fdate, tday, instrument):
# load the driver
driver = webdriver.Chrome()
# load DSE data archive site
driver.get('https://www.dsebd.org/day_end_archive.php')
# deal with the pop up warning
try:
alert = driver.switch_to.alert
alert.accept()
except NoAlertPresentException:
print ("No alert here")
# from date
fdate=datetime.datetime.strptime(fdate, '%Y-%m-%d')
yr=str(fdate.year)
mn='0'+str(fdate.month)
dy='0'+str(fdate.day)
# to date
tday=datetime.datetime.strptime(tday, '%Y-%m-%d')
bdd='0'+str(tday.day)
bdm='0'+str(tday.month)
bdy=str(tday.year)
# beginning day
x=Select(driver.find_element_by_name("DayEndSumDate1_day"))
x.select_by_value(dy)
# beginning month
y=Select(driver.find_element_by_name("DayEndSumDate1_month"))
y.select_by_value(mn)
# beginning year
z=Select(driver.find_element_by_name("DayEndSumDate1_year"))
z.select_by_value(yr)
# end day
xp=Select(driver.find_element_by_name("DayEndSumDate2_day"))
xp.select_by_value(bdd)
# end month
yp=Select(driver.find_element_by_name("DayEndSumDate2_month"))
yp.select_by_value(bdm)
# end year
zp=Select(driver.find_element_by_name("DayEndSumDate2_year"))
zp.select_by_value(bdy)
# instrument
inst=Select(driver.find_element_by_name("Symbol"))
inst.select_by_visible_text(instrument)
# generate the table
driver.find_element_by_name("ViewDayEndArchive").click()
# extract the table
soup = BeautifulSoup(driver.page_source, 'html.parser')
tables = soup.find_all('table')
tt=tables[374]
#ti=pd.read_html(tt)
#tm=display_html(tt, raw=True)
#tx=pd.read_html(tt)
return(tt)
И теперь можно извлечь HTML-код для нужной таблицы с помощью -
extractdse('2019-01-01', '2019-01-03', 'ACI')
Сейчас, есть ли способ преобразовать код HTML в Pandas Dataframe?