作为学习爬虫的小白,把自己目前学习到的内容记录在博客中,供自己翻阅,忘记就看看,嘎嘎
言归正传,开始进入主题
1.安装bs4 pip install bs4 ,如果安装较慢,可以换国内镜像源 pip install bs4 -i xxxxx
2.安装完成之后,正式开始
3.from bs4 import BeautifulSoup
假设字符串
html = """
<ul>
<li><a href="zhangwuji.com">张无忌</a></li>
<li id="abc"><a href="zhouxingchi.com">周星驰</a></li>
<li><a href="zhubajie.com">猪八戒</a></li>
<li><a href="wuzetian.com">武则天</a></li>
</ul>
"""
page = BeautifulSoup(html,"html.parser") # 初始化BeautifulSoup对象
page.find("li",attrs={"id":"abc"}) # page.find("标签名",attrs={"属性":"值"}) 查找某个元素,只会找到一个结果
page.find_all("标签名",attrs={"属性":"值"}) # 找到一堆结果
li = page.find("li",attrs={"id":"abc"}) # 结果是 <li id="abc"><a href="zhouxingchi.com">周星驰</a></li>
再次查找
a = li.find("a") # <a href="zhouxingchi.com">周星驰</a>
print(a.text) #获取文本 ,打印结果为周星驰
print(a.get("href")) #get属性值 , 打印结果为 zhouxing chi.com
以上是find的用法,以下是find_all用法
page.find_all("li") # 此处表示查找所有的li标签,拿到是一个list,然后通过遍历,拿到a标签,然后通过text和 get分别获取文本和url
li_list = page.find_all("li")
for li in li_list:
a = li.find("a")
text = a.text
href = a.get("href")
print(text,href)
其实就是找页面标签,一层一层剥洋葱,然后用特定的方法获取到标签里面的属性的 值