Удалить ссылки в html - Python
Формулировка задачи:
Всем доброго времени суток!
Поставлена задача: Найти на web-странице (на wiki-движке) ключевые слова и построить dot-дерево.
На данный момент я считала со страницы текст при помощи библиотеки request и нашла ключевые слова при помощи библиотеки rutermextract.
Но помимо текста у меня выводятся ссылки виде последовательностей символов и rutermextract определяет их как ключевые слова. Подскажите пожалуйста, как можно от них избавиться?
Здесь я принудительно убираю все лишнее, но если с тегами это можно сделать, то с ссылками это работает только на конкретной странице (дальше мне нужно будет по ключевым словам переходить на другие и искать ключевые слова там), мне нужен более универсальны способ.
Решение задачи: «Удалить ссылки в html»
textual
Листинг программы
import requests
from lxml.html import fromstring
import re
#--------------------------------------
# замена множественных пробелов на один
#--------------------------------------
def squeeze(value):
"""Replace all sequences of whitespace chars with a single space."""
return re.sub(r"[\x00-\x20]+", " ", value).strip()
if __name__ == "__main__":
url = "http://itas.pstu.ru"
resp = requests.get(url)
# дерево элементов
tree = fromstring(resp.text)
# выбираем только нужный элемент и рекурсивно конкатенируем все текстовое содержимое его дочерних узлов
data = tree.xpath("//div[@id='content']")[0].text_content()
data = squeeze(data) # убираем лишние пробелы
# в конец текста попадает одна ссылка - «http://itas.pstu.ru/wiki/index.php?title=Новости_кафедры&oldid=1114»
# ошибка верстки? - но ее можно легко удалить
data = re.sub(r"«http:.+?»",'',data)
print(data)