Вопрос:

Как указать, какие столбцы читать, используя BeautifulSoup

python beautifulsoup

101 просмотра

1 ответ

1113 Репутация автора

У меня есть HTML-файл с таблицей внутри него. Эта таблица имеет 30 столбцов, но мне нужно прочитать только несколько.

Код до сих пор:

from bs4 import BeautifulSoup

soup = BeautifulSoup(open("myfile.htm"))
table = soup.find("table", attrs={"class":"myTable"})

# The first tr contains the field names.
headings = [th.get_text() for th in table.find("tr").find_all("th")]

datasets = []
for row in table.find_all("tr")[1:]:
    dataset = zip(headings, (td.get_text() for td in row.find_all("td")))
    datasets.append(dataset)

for dataset in datasets:
    for field in dataset:
        print "{0:<16}: {1}".format(field[0], field[1])  

Как я могу указать, какие столбцы я хочу прочитать?

Автор: PlayHardGoPro Источник Размещён: 09.03.2017 02:32

Ответы (1)


1 плюс

1220 Репутация автора

Вариант 1. Использование table.find("tr").findNext()

https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.html#find-all-next-and-find-next

Вариант 2. Использование lxml в BeautifulSoup и предоставление xpath. в Chrome

Автор: oshaiken Размещён: 09.03.2017 04:16
Вопросы из категории :
32x32