python - 在 bs4.element.Tag 中查找链接
问题描述
我用这个提取了我想要的链接:
link_soup = soup.find_all('ul', 'pagination')
但现在我不能使用link_soup[0].find_all('a')['href']
,如果我使用link_soup[0].find('a')['href']
它只显示不是我想要的第一个链接。我将如何在列表中返回所有链接?
下面的片段:
<ul class="pagination">
<li><a href="link"><<</a></li>
<li><a href="link"><</a></li>
<li class="hidden-xs"><a href="link">1</a></li>
<li class="hidden-xs active"><a href="link">2</a></li>
<li class="hidden-xs"><a href="link">3</a></li>
<li class="hidden-xs"><a href="link">4</a></li>
<li class="hidden-xs"><a href="link">5</a></li>
<li><a href="link"> ></a></li>
<li><a href="link"> >></a></li>
</ul>
解决方案
首先你需要找到parent
标签使用find
,然后全部child
使用find_all
。希望这会有所帮助
from bs4 import BeautifulSoup
html="""<html><ul class="pagination">
<li><a href="link"><<</a></li>
<li><a href="link"><</a></li>
<li class="hidden-xs"><a href="link">1</a></li>
<li class="hidden-xs active"><a href="link">2</a></li>
<li class="hidden-xs"><a href="link">3</a></li>
<li class="hidden-xs"><a href="link">4</a></li>
<li class="hidden-xs"><a href="link">5</a></li>
<li><a href="link"> ></a></li>
<li><a href="link"> >></a></li>
</ul></html>"""
soup=BeautifulSoup(html,"html.parser")
ul=soup.find('ul')
for a in ul.find_all('a'):
print(a['href'])
输出 :
link
link
link
link
link
link
link
link
link
推荐阅读
- c++ - 这如何在 Arduino IDE 中编译?
- excel - 如何使用存储在“Personal.xlsb”工作簿中的宏引用打开的工作簿?
- azure - SMS New Line from Azure Logic Apps
- r - 拆分 2 个单独的数据帧,同时对两者应用函数,然后合并
- sql-server - 按查询分区和分组
- javascript - 使用 Next JS 和 Commerce.js 获取产品永久链接和 ID
- javascript - 有没有办法告诉我何时收到带有 node/express 的 ajax 请求?
- python - 在python中对多字典进行排序
- reactjs - React PWA Service Worker 在本地工作,但在 Netlify 上托管时不能
- vba - 使用 Do 循环的 VBA 计时器