首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Python中通过BeautifulSoup提取子标签中的href?

如何在Python中通过BeautifulSoup提取子标签中的href?
EN

Stack Overflow用户
提问于 2021-02-25 09:08:04
回答 1查看 35关注 0票数 0

例如:

代码语言:javascript
运行
复制
▪美国1995年马丁·坎贝尔执导好莱坞电影
▪锦瑟华年创作都市异能小说
▪单兵便携式电脑
▪任天堂Wii主机射击类游戏《黄金眼》
▪珠宝鉴定职业
▪Rare Software制作的N64游戏
▪大鹏金翅明王小说
▪证券分析软件
▪《藏地密码》中的藏獒

首先,我可以提取多个项目:

代码语言:js
复制
multi_entry = soup.findAll('ul', attrs = {'class': 'polysemantList-wrapper cmn-clearfix'})

那么如何导航子标记li的href呢?我想要获取每个项目中所有urls的列表。下面的代码可以提取所有'li‘项,但不一定是从polysemantList部分提取的。

代码语言:js
复制
li_items = soup.findAll('li', attrs={'class': 'item'})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-25 09:29:50

我们可以找到所有li使用一个类itempolysemantList-wrapper cmn-clearfix一次搜索。然后我们可以遍历结并输出href值。

代码语言:javascript
运行
复制
li = soup.find("ul", { "class" : "polysemantList-wrapper cmn-clearfix" }).findAll("li", attrs={'class': 'item'}, recursive=False)

for e in li:
    for x in e.findAll('a', href=True):
        print(x['href'])

还可以使用列表理解输出列表

代码语言:js
复制
[x['href'] for e in li for x in e.findAll('a', href=True)]

输出

代码语言:javascript
运行
复制
/item/%E9%BB%84%E9%87%91%E7%9C%BC/7822656#viewPageContent
/item/%E9%BB%84%E9%87%91%E7%9C%BC/16402442#viewPageContent
/item/%E9%BB%84%E9%87%91%E7%9C%BC/9585407#viewPageContent
/item/%E9%BB%84%E9%87%91%E7%9C%BC/9585395#viewPageContent
/item/%E9%BB%84%E9%87%91%E7%9C%BC/10704458#viewPageContent
/item/%E9%BB%84%E9%87%91%E7%9C%BC/17571741#viewPageContent
/item/%E9%BB%84%E9%87%91%E7%9C%BC/9585420#viewPageContent
/item/%E9%BB%84%E9%87%91%E7%9C%BC/9585384#viewPageContent
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66361039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档