NO библиотеки ...Как извлечь все имя ссылки из HTML страницы
Я стараюсь, чтобы получить все название ссылки с веб-страницы, код выглядит следующим образом
url="http://einstein.biz/"
m = urllib.request.urlopen(url)
msg = m.read()
titleregex=re.compile('<a\s*href=[\'|"].*?[\'"].*?>(.+?)</a>')
titles = titleregex.findall(str(msg))
print(titles)
Названия являются
['Photo Gallery', 'Bio', 'Quotes', 'Links', 'Contact', 'official store', '\\xe6\\x97\\xa5\\xe6\\x9c\\xac\\xe8\\xaa\\x9e', '<img\\n\\t\\tsrc="http://corbisrightsceleb.122.2O7.net/b/ss/corbisrightsceleb/1/H.14--NS/0"\\n\\t\\theight="1" width="1" border="0" alt="" />']
это не идеально, я хотел бы иметь только следующее:
['Photo Gallery', 'Bio', 'Quotes', 'Links', 'Contact', 'official store']
Как пересмотреть код?
Заменить '(. +?)' В шаблоне ре с чем-то вроде '([\ ш \ s] +)' – kums
Это действительно трудно использовать регулярные выражения для разбора HTML-код. регулярные выражения (и особенно регулярные выражения python) не любят вложенную структуру. Но [BeautifulSoup] (http://www.crummy.com/software/BeautifulSoup/) - хороший инструмент для анализа HTML ... –
Обязательная ссылка на [почему вы не должны анализировать HTML с регулярным выражением] (http: // stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags) – miles82