Python- извлечь HTML-таблицу без потери заголовков оси
Q1. Есть ли способ извлечь данные из таблицы, но все же можно отслеживать названия осей? Q2. Какой подход будет лучше извлечь данные из таблицы HTML? HTMLParser или Beautifulsoup или еще?
я пытался извлечь эту таблицу доходов http://investing.businessweek.com/research/stocks/financials/financials.asp?ticker=TSCO:LN
я бы хотел быть
"Валюта в миллионах британских фунтов", "2009", "2010", "2011", "2012"
"Доходы", "53 898,0", "56 910,0", "60 455,0", "64 539,0"
"ВСЕГО ДОХОДОВ", "53 898,0", "56 910,0", "60 455,0", "64 539,0"
в то же время я хочу знать, "56 910,0" это доход в 2009 году
но я испытал две проблемы:
HTMLParser.HTMLParseError: неверно сформированный начальный тег, в строке 1148, столбец 47 или HTMLParser.HTMLParseError: неверный конечный тег: "", в строке 225, столбец 104
не могу отслеживать названия осей
Большое спасибо
1 ответ
Я сделал довольно много очистки, и BeautifulSoup редко разочаровывает.
from BeautifulSoup import BeautifulSoup
URL = " http://investing.businessweek.com/research/stocks/financials/financials.asp?ticker=TSCO:LN"
from urllib import urlopen
HTML = urlopen ( URL )
soup = BeautifulSoup ( HTML )
statement = soup . find ( 'table', { 'class' : "financialStatement" } )
rows = statement . findAll ( 'tr' )
На данный момент, я думаю, вы обнаружите, что строки имеют длину 25 и что их первый элемент является заголовком, а последний - последней строкой нужной таблицы.