1 from bs4 import BeautifulSoup 2 3 fp = open("./test.html", "r", encoding="utf-8") 4 print(fp)
1 soup = BeautifulSoup(fp, ‘lxml‘) 2 # 参数1,是一个HTML字符串 3 # 参数2,代表一个解析器,因为bs4本身没有解析器,可以借助于外界的解析器来解析 4 5 print(soup)
1 print(soup.title) 2 print(soup.a) # 如果标签有多个,只提取第一个
1 a = soup.a 2 print(a.get("href")) # 用get函数来获取 3 print(a["href"]) # 用键值方式获取 4 print(a.attrs)
1 li = soup.li 2 print(li.string) # 通过string属性获取,可以获取当前标签的字符串内容(包括注释),但是如果当前内容中有子标签则获取为空 3 print(li.get_text()) #通过get_text函数获取,获取出当前节点的字符串和后代节点中所有的字符串并且拼接在一起,但是如果有注释则忽略
1 body = soup.body 2 3 # 1)获取直接子节点 4 children = body.children 5 print(children) 3打印结果:<list_iterator object at 0x0000026E8ED16080> 6 7 # 2)获取后代节点 8 des = body.descendants 9 print(des) # 打印结果:<generator object descendants at 0x00000203556CD048> 10 11 # 3)对节点进行遍历 12 for node in des:
1 # 1)find函数 2 print(soup.find("a")) 3 print(soup.find("li",class_=‘hehe‘)) 4 print(soup.find("li",id=‘hehe‘)) 5 6 # 2)find_all函数 7 print(soup.find_all("a")) 8 9 # 3) select函数,根据css选择器来选取节点,返回值是一个列表 10 print(soup.select(".heihei")) 11 print(soup.select("#hehe")) 12 print(soup.select("[href=‘http://mi.com‘]")) 13 print(soup.select("[name=‘ok‘]"))
原文:https://www.cnblogs.com/TMMM/p/10802170.html