给定维基百科页面上的一个段落(即拉娜·德尔雷),使用BeautifulSoup,我需要从段落中提取文本并标记包含链接的单词或一组单词。
例如,考虑第一段的第一句:
伊丽莎白·伍尔里奇·格兰特(生于1985年6月21日),专业名为拉娜·德尔雷伊,是一名美国歌手和词曲作者。她的音乐以其电影性质和对悲剧浪漫、魅力和苦胆的探索而闻名,其中包含了对当代流行文化和20世纪50至60年代美国a的引用。
我需要用这种格式:
伊丽莎白·伍尔里奇·格兰特(生于1985年6月21日),专业名为拉娜·德尔雷伊,是一名美国歌手和词曲作者。她的音乐以其电影性质和对悲剧性浪漫的探索、START_A魅力END_A和START_A忧郁END_A而闻名,其中包含了当代START_A流行文化END_A和20世纪50年代至20世纪60年代的美国音乐。
到目前为止,我可以使用以下内容分别提取一个段落或链接:
from urllib import request
from bs4 import BeautifulSoup
soup = BeautifulSoup(request.urlopen("https://en.wikipedia.org/wiki/Lana_Del_Rey").read())
for tag in soup.select('p a[href]'):
if tag['href'].startswith('/wiki/'):
text = tag.text.strip()
print(text)
for tag in soup.select('p'):
text = tag.text.strip()
print(text)能否摘取该段的案文?
标记并识别哪些单词与它们有关联?
发布于 2022-08-16 09:29:12
您可以使用replaceWith()将<a>及其文本转换为预期的输出:
a.replaceWith('START_A '+a.text+' END_A')示例
from urllib import request
from bs4 import BeautifulSoup
soup = BeautifulSoup(request.urlopen("https://en.wikipedia.org/wiki/Lana_Del_Rey").read())
for tag in soup.select('p'):
for a in tag.select('a'):
a.replaceWith('START_A '+a.text+' END_A')
print(tag.text)输出
伊丽莎白·伍尔里奇·格兰特(生于1985年6月21日),专业名为拉娜·德尔雷伊,是一名美国歌手和词曲作者。她的音乐以其电影品质和对悲剧性浪漫的探索、START_A魅力END_A和START_A忧郁END_A而闻名,其中包含了当代START_A流行文化END_A和START_A 1950年代末A- START_A 1960年代END_A START_A START_A Americana END_A.START_A 1 END_A,她是START_A各种奖项END_A的获得者,其中包括两项START_A新娘奖END_A、两项START_A MTV欧洲音乐奖END_A和一项END_A卫星奖。除了六项START_A格莱美奖、END_A奖和START_A金球奖( END_A.START_A 2 END_A START_A Variety END_A )的提名外,因她是“21世纪最具影响力的歌手--词曲作家之一”而在他们的START_A音乐人奖(START_A Hitmakers START_A END_A )上获得提名的还有“START_A 3 END_ASTART_A 4 END_A”
..。
https://stackoverflow.com/questions/73371603
复制相似问题