Я пытаюсь разобрать определенный набор ссылок из html-файла, но поскольку я использую HTMLParser, я не могу получить доступ к информации о html в дереве иерархии и, следовательно, я не могу извлечь эту информацию.Разделяйте конкретные ссылки в html с помощью HTMLParser в python?
Мой HTML выглядит следующим образом:
<p class="mediatitle">
<a class="bullet medialink" href="link/to/a/file">Some Content
</a>
</p>
Так что мне нужно, чтобы извлечь все значения, которые имеют свой ключ как «HREF» и предыдущий атрибут как класс = «пули MediaLink». Другими словами, я хочу только Thode hrefs, которые присутствуют в теге класса «пули MediaLink»
То, что я пытался до сих пор является
from HTMLParser import HTMLParser
import urllib
# create a subclass and override the handler methods
class MyHTMLParser(HTMLParser):
def handle_starttag(self, tag, attrs):
if(tag == 'a'):
for (key,value) in attrs:
if(value == 'bullet medialink'):
print "attr:", key
p = MyHTMLParser()
f = urllib.urlopen("sample.html")
html = f.read()
p.feed(html)
p.close()
Большое спасибо. но поскольку я создаю скрипт, который будет использоваться многими людьми, я хочу сохранить его простым, используя только встроенные функции разбора python. –
Хмм. Может быть, вы можете взглянуть на библиотеку inbuild etree https: //docs.python. org/2/library/xml.etree.elementtree.html Это не самое лучшее, но всегда лучше, чем htmlparser. И если вы передумаете, вы всегда можете использовать lxml.de. Он использует библиотеку etree, но с ней лучше работать. –