python小白学习记录 BeautifulSoup4学习

from bs4 import BeautifulSoup
text = """
<ul id="navList" class="w1">
<li><a id="blog_nav_sitehome" class="menu" href="https://www.cnblogs.com/">博客园</a>
</li>
<li>
<a id="blog_nav_myhome" class="menu" href="https://www.cnblogs.com/jswf/">首页</a>
</li>
<li>
<a id="blog_nav_newpost" class="menu" href="https://i.cnblogs.com/EditPosts.aspx?opt=1">新随笔</a>
</li>
<li>
<a id="blog_nav_contact" class="menu" href="https://msg.cnblogs.com/send/jswf">联系</a></li>
<li>
<a id="blog_nav_rss" class="menu" href="https://www.cnblogs.com/jswf/rss/">订阅</a>
<!--<partial name="./Shared/_XmlLink.cshtml" model="Model" /></li>--></li>
<li>
<a id="blog_nav_admin" class="menu" href="https://i.cnblogs.com/">管理</a>
</li>
</ul>
<ul>
<li>1213123</li>
</ul>
"""
soup = BeautifulSoup(text,"lxml")
ul = soup.find_all("ul",class_="w1",id="navList",limit=2)[0]
#找到所有的ul标签 且class 和 id 被指定了 且只取两个 得到列表后 获取列表第零个
#ul = soup.find_all("uls",attrs={"class":"w1","id":"navList"})[0]
#找到所有的ul标签 且class 和 id 被指定了 得到列表后 获取列表第零个
print(ul)
print(list(ul.strings))
#拿到ul标签下的所有文本包括回车换行符
print(list(ul.stripped_strings))
#拿到ul标签下的所有非空文本
aes = ul.find_all("a")
for a in aes:
    href = a["href"]
    # 获取a标签的href属性
    #href = a.attrs("href")
    #获取a标签的href属性
    print(href)

 额 还有一个ul.get_text()和ul.strings作用一样 (都是返回ul标签下的所有文本包括空格回车)

但 get_text()返回的是字符串格式     strings返回的是生成器格式

猜你喜欢

转载自www.cnblogs.com/jswf/p/12294336.html
今日推荐