Python-Parsing-HTML-Tabelle Erstellt von JavaScript

Ich versuche, einen Tisch von der NYSE-Website zu kratzen (http://www1.nyse.com/about/listed/IPO_Index.html) in einen Pandas-Datenrahmen. Dafür habe ich folgendes Setup:

def htmltodf(url):
page = requests.get(url)
soup = BeautifulSoup(page.text)

tables = soup.findAll('table')
test = pandas.io.html.read_html(str(tables))

return(test)            #return dataframe type object

Wenn ich dies jedoch auf der Seite ausführe, sind alle in der Liste zurückgegebenen Tabellen im Wesentlichen leer. Als ich weiter nachforschte, stellte ich fest, dass die Tabelle von Javascript generiert wird. Wenn ich die Entwicklertools in meinem Webbrowser verwende, sehe ich, dass die Tabelle wie jede andere HTML-Tabelle mit den Tags usw. aussieht. Eine Ansicht des Quellcodes ergab jedoch stattdessen Folgendes:

<script language="JavaScript">

.
.
.

<script>
var year = [["ICC","21st Century Oncology Holdings, Inc.","22 May  2014","/about/listed/icc.html" ],
... more entries here ...
,["ZOES","Zoe's Kitchen, Inc.","11 Apr 2014","/about/listed/zoes.html" ]] ;

    if(year.length != 0) 
    {   

    document.write ("<table width='619' border='0' cellspacing='0' cellpadding='0'><tr><td><span class='fontbold'>");
    document.write ('2014' + " IPO Showcase"); 
    document.write ("</span></td></tr></table>"); 
    }  
</script>

Wenn mein HTML-Parser nach dem Tabellen-Tag sucht, kann er daher nur die if-Bedingung und keine richtigen Tags finden, die auf Inhalt hinweisen. Wie kann ich diesen Tisch abkratzen? Gibt es ein Tag, nach dem ich suchen kann, anstatt nach einer Tabelle, die den Inhalt enthüllt? Wie lese ich den Code mit Pandas ein, da er nicht in herkömmlicher HTML-Tabellenform vorliegt? Muss ich die Daten manuell analysieren?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage