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 году

но я испытал две проблемы:

  1. HTMLParser.HTMLParseError: неверно сформированный начальный тег, в строке 1148, столбец 47 или HTMLParser.HTMLParseError: неверный конечный тег: "", в строке 225, столбец 104

  2. не могу отслеживать названия осей

Большое спасибо

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 и что их первый элемент является заголовком, а последний - последней строкой нужной таблицы.

Другие вопросы по тегам