Красивый суп, дублирующий текст ссылкиPython

Программы на Python
Ответить
Anonymous
 Красивый суп, дублирующий текст ссылки

Сообщение Anonymous »

У меня есть функция, предназначенная для извлечения HTML и его отображения в формате PDF с помощью другой функции

Код: Выделить всё

    def setLinks(self, value):
if isinstance(value, str) and ('' in value):
soup = BeautifulSoup(value, 'html.parser')
paragraphs = []
links = []

# Process text and collect links
for element in soup.descendants:
if isinstance(element, str) and element.strip():
paragraphs.append(element.strip())
elif element.name == 'a' and element.get('href'):
link_text = element.get_text().strip()
href = element.get('href')
links.append((link_text, href))
if link_text not in paragraphs:
paragraphs.append(link_text)
else:
if isinstance(value, str):
paragraphs = value.split('\n')
else:
paragraphs = [str(value)]
links = []
return links, paragraphs
Мой вклад:

Код: Выделить всё

Il faut noter une une similitude de mise en scène avec la[url=http://www.cappiello.fr/illustrations/] couverture du "Cri de Paris", n° 201[/url], parue le 2 décembre 1900. Noter l'attitude des deux femmes, l'envolée du noeud de la robe de droite. Le visage de la femme en noir du Cri de Paris est repris pour la femme de gauche. On retrouve la présence d'un meuble sur la gauche pour l'équilibre de la composition.
При отладке я получаю:

Код: Выделить всё

paragraphs = {list: 4} ['Il faut noter une une similitude de mise en scène avec la', 'couverture du "Cri de Paris", n° 201', 'couverture du "Cri de Paris", n° 201', ", parue le 2 décembre 1900. Noter l'attitude des deux femmes, l'envolée du noeud de la robe de droite. Le visage
0 = {str} 'Il faut noter une une similitude de mise en scène avec la'
1 = {str} 'couverture du "Cri de Paris", n° 201'
2 = {str} 'couverture du "Cri de Paris", n° 201'
3 = {str} ", parue le 2 décembre 1900. Noter l'attitude des deux femmes, l'envolée du noeud de la robe de droite. Le visage de la femme en noir du Cri de Paris est repris pour la femme de gauche. On retrouve la présence d'un meuble sur la gauche pour l'équilibre de
Почему суп.descendants зацикливается на ссылке первым:

Код: Выделить всё

[url=http://www.cappiello.fr/illustrations/] couverture du "Cri de Paris", n° 201[/url]
а затем на тексте couverture du "Cri de Paris", № 201 ???

Подробнее здесь: https://stackoverflow.com/questions/792 ... -link-text
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»