Я начал использовать HTMLParser в Python для извлечения данных с веб-сайта. Я получаю все, что хотел, кроме текста внутри двух тегов HTML. Вот пример тега HTML:
<a href="http://wold.livingsources.org/vocabulary/1" title="Swahili" class="Vocabulary">Swahili</a>
Есть и другие теги, начинающиеся с . У них другие атрибуты и значения и поэтому я не хочу иметь их данные:
<a href="http://wold.livingsources.org/contributor#schadebergthilo" title="Thilo Schadeberg" class="Contributor">Thilo Schadeberg</a>
Тег является встроенным тегом в таблице. Я не знаю, имеет ли это какое-то значение между другими тегами. Мне нужна только информация в некоторых тегах с именем «a» с атрибутом class = «Vocabulary», и мне нужны данные внутри тега, в примере это будет «суахили». Итак, что я сделал:
class AllLanguages(HTMLParser):
'''
classdocs
'''
#counter for the languages
#countLanguages = 0
def __init__(self):
HTMLParser.__init__(self)
self.inLink = False
self.dataArray = []
self.countLanguages = 0
self.lasttag = None
self.lastname = None
self.lastvalue = None
#self.text = ""
def handle_starttag(self, tag, attr):
#print "Encountered a start tag:", tag
if tag == 'a':
for name, value in attr:
if name == 'class' and value == 'Vocabulary':
self.countLanguages += 1
self.inLink = True
self.lasttag = tag
#self.lastname = name
#self.lastvalue = value
print self.lasttag
#print self.lastname
#print self.lastvalue
#return tag
print self.countLanguages
def handle_endtag(self, tag):
if tag == "a":
self.inlink = False
#print "".join(self.data)
def handle_data(self, data):
if self.lasttag == 'a' and self.inLink and data.strip():
#self.dataArray.append(data)
#
print data
Программа печатает все данные, включенные в тег, но мне нужны только те, которые включены в тег с правильными атрибутами. Как мне получить эти конкретные данные?