我有一个函数,旨在提取 html 以在另一个函数中将其呈现为 pdf
def setLinks(self, value):
if isinstance(value, str) and ('<' in value 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<a href="http://www.cappiello.fr/illustrations/"> couverture du "Cri de Paris", n° 201</a>, 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
为什么
soup.descendants
首先在链接上循环:
<a href="http://www.cappiello.fr/illustrations/"> couverture du "Cri de Paris", n° 201</a>
然后在文字上
couverture du "Cri de Paris", n° 201
???
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)
看起来您附加了
paragraphs
两次。