Sie können die Daten erhalten mit nur Anfragen und BeautifulSoup wird der HTML-Code mit einem Ajax-Aufruf Introduction:
from bs4 import BeautifulSoup
from json import loads
import requests
from time import time
params = {'columnYear': '5', 'region': 'ind', 'rounding': '3', 'period': '12',
'curYearPart': '1st5year', 'culture': 'en-US', 'reportType': 'cf', 't': 'XNSE:3IINFOTECH',
'callback': 'jsonp{}'.format(str(int(time()))), 'order': 'asc', '_': str(int(time()))}
r = requests.get('http://financials.morningstar.com/ajax/ReportProcess4HtmlAjax.html', params=params)
cont = r.content
jsn = loads(cont[cont.find("{"):cont.rfind("}") + 1])
soup = BeautifulSoup(jsn["result"])
table = soup.select_one("div.r_xcmenu.rf_table")
headers = [d.text for d in table.select("div.rf_header [id^=Y_]")]
print headers
for row in table.find_all("div","rf_crow", style=False):
print([d.text for d in row.select("[id^=Y_]")])
Welche Sie gibt:
[u'2011-03', u'2012-03', u'2013-03', u'2014-03', u'2015-03', u'TTM']
[u'3,511', u'(1,545)', u'495', u'498', u'(513)', u'(513)']
[u'975', u'1,092', u'2,308', u'2,564', u'2,291', u'2,291']
[u'\u2014', u'(80)', u'\u2014', u'\u2014', u'\u2014', u'\u2014']
[u'(10)', u'6', u'5', u'2', u'(1)', u'(1)']
[u'(1,277)', u'(3,556)', u'(401)', u'(409)', u'(2,080)', u'(2,080)']
[u'3,823', u'995', u'(1,417)', u'(1,661)', u'(724)', u'(724)']
[u'(1,168)', u'4,953', u'(398)', u'(190)', u'3,137', u'3,137']
[u'(4,713)', u'(617)', u'(426)', u'(229)', u'\u2014', u'\u2014']
[u'232', u'\u2014', u'\u2014', u'\u2014', u'89', u'89']
[u'\u2014', u'5,513', u'\u2014', u'\u2014', u'3,037', u'3,037']
[u'\u2014', u'\u2014', u'(1)', u'\u2014', u'\u2014', u'\u2014']
[u'3,251', u'\u2014', u'\u2014', u'0', u'\u2014', u'\u2014']
[u'63', u'57', u'29', u'39', u'12', u'12']
[u'(2,207)', u'(3,843)', u'(604)', u'(168)', u'(3,026)', u'(3,026)']
[u'(1,482)', u'\u2014', u'\u2014', u'\u2014', u'\u2014', u'\u2014']
[u'1,816', u'\u2014', u'\u2014', u'\u2014', u'\u2014', u'\u2014']
[u'(151)', u'\u2014', u'\u2014', u'\u2014', u'\u2014', u'\u2014']
[u'(410)', u'(341)', u'\u2014', u'\u2014', u'\u2014', u'\u2014']
[u'(1,980)', u'(3,502)', u'(604)', u'(168)', u'(3,026)', u'(3,026)']
[u'136', u'(435)', u'(506)', u'140', u'(403)', u'(403)']
[u'1,806', u'1,318', u'884', u'377', u'518', u'518']
[u'1,941', u'884', u'377', u'518', u'115', u'115']
[u'\xa0', u'\xa0', u'\xa0', u'\xa0', u'\xa0', u'\xa0']
[u'3,511', u'(1,545)', u'495', u'498', u'(513)', u'(513)']
[u'(4,713)', u'(617)', u'(426)', u'(229)', u'\u2014', u'\u2014']
[u'(1,203)', u'(2,162)', u'69', u'269', u'(513)', u'(513)']
u'\u2014'
ein Unicode ist _
Sie die Auf der Seite finden Sie fehlende Werte.
Kannst du zumindest posten, was du probiert hast? Warum posten Sie nicht Ihren BeautifulSoup-Code? Zeigen Sie den Fehler - das hilft uns wirklich dabei, Ihnen zu helfen. Veröffentliche auch das gesamte div-Tag, damit die Leute dir helfen können. Eine einzelne Zeile wird nicht helfen. Verwenden Sie 4 Leerzeichen, bevor Sie jede Zeile als Code formatieren. –