Próbuję wyodrębnić pierwszą i trzecią kolumnę this data table przy użyciu BeautifulSoup. Patrząc na HTML pierwsza kolumna ma tag <th>
. Druga kolumna zainteresowania ma znacznik <td>
. W każdym razie wszystko, co udało mi się wydostać, to lista kolumn z tagami. Ale ja chcę tylko tekst.Wyodrębnianie wybranych kolumn z tabeli za pomocą BeautifulSoup
table
jest już listą, więc nie mogę użyć findAll(text=True)
. Nie wiem, jak uzyskać listę pierwszej kolumny w innej formie.
from BeautifulSoup import BeautifulSoup
from sys import argv
import re
filename = argv[1] #get HTML file as a string
html_doc = ''.join(open(filename,'r').readlines())
soup = BeautifulSoup(html_doc)
table = soup.findAll('table')[0].tbody.th.findAll('th') #The relevant table is the first one
print table
Nie wierzę, że będziesz w stanie uzyskać całą kolumnę jako reprezentację HTML jest wiersz oparte (choć może być źle). Wyobrażam sobie, że możesz zbliżyć się do czegoś, powtarzając wiersze i wyciągając odpowiednią kolumnę, dodając ją do wybranej struktury danych. – RocketDonkey
Zacząłem od próby, ale nadal nie mogłem wyciągnąć tekstu. Zaktualizuję moją odpowiedź, aby uwzględnić tę część. Może to łatwiejsza droga. – mac389