Удалить ссылки в 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)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.4 из 5