BeautifulSoup-bs4的简单使用
# 简单使用: # 说明:选择器 jquery #导入from bs4 import BeautifulSoup #使用方式:可以将一个html文档,转化为一个对象, # 然后通过对象的方法或者属性去查找指定对象 #转化本地文件soup = BeautifulSoup(open("本地文件"),'lxml') #转化网络文件soup = BeautifulSoup(open("字符串或者字节类型"),'lxml') from bs4 import BeautifulSoup #生成对象 soup = BeautifulSoup(open("xx.html"),'lxml') #打印 这是一个对象 print(soup) #1、根据签名查找 #可以查找这个对象的所有HTML标签 print(soup.a)#<a href=""...> a标签 print(soup.div) #div 标签 #2、获取标签中的属性 比如<a href=""...> 中有href和内容两部分属性 #<a href="http://www.baudu.com/meinv.jpg" title="" target="" >这里是内容</a> print(soup.a['href']) print(soup.a['title']) print(soup.a['target']) print(soup.a['attrs'])#找出所有属性和值并返回一个属性字典 #3、获取内容 #<a href="http://www.baudu.com/meinv.jpg" title="" target="" >这里是内容</a> #以下三个都可以 print(soup.a.string) print(soup.a.text) print(soup.a.get_text()) #4、获取一个div中的内容 如下 来区别以上三个方法的不同 # <div> # 甄姬 # <p>百里守约</p> # <p>李白</p> # 太乙真人 # </div> print(soup.a.string)#只能获取标签里面只有文本的情况 标签里有别的标签就获取不到了 结果为None print(soup.a.text)#这个方法里面有标签也可以获取所有文本内容 print(soup.a.get_text())#这个方法里面有标签也可以 和上一个效果一样 #5、soup.find('a') print(soup.find("a"))#找到第一个符合要求的a print(soup.find("a"),title="限制")#通过第二个参数来限制 print(soup.find("a"),alt="限制") print(soup.find("a"),class_="限制")#class是关键字不能用,但是可以用class_ print(soup.find("a"),id="限制") #如果有重复的 需要精确查找 自己定义限定块 再查找 代码如下 #find方法不仅soup可以调用,普通div对象也能调用, # 会去指定的div里面查找符合要求的节点 div = soup.find('div',class_="第一个限制块") print(div.find('a',class_="第二个限制条件")) #6、find_all() 和上面的find差不多 lt = soup.find_all('a') print(lt,len(lt))#会产生一个列表 ,里面会有几个查找到的元素 div = soup.find_all('div',class_="第一个限制块") print(div.find_all('a',class_="第二个限制条件")) print(div.find_all('a','b') print(div.find_all('a',limit=2)#找到所有取出前2个 #7、select 根据选择器选择指定的内容 #常见选择器:标签选择器、类选择器、id选择器、层级选择器、伪类选择器、属性选择器、组合选择器 #a 标签a # .dudu 类选择器 # #lala id选择器 # 层级选择器举例 div .dudu #lala .meme .xixi 下面好多级 #建议层级选择器写法:div>p>a>.lala 这样只能找下面一级 print(soup.select(".tang>ul>li>a")[2]) #返回的是列表 这个是取第三个 print(soup.select("#feng")[0].text|['href'])#取查找到的第一个 。text并只找文本 #select选择器返回的永远是列表 需要通过下标提取指定的对象,然后获取属性和节点
作者:求知鱼
-------------------------------------------
个性签名:你有一个苹果,我有一个苹果,我们交换一下,一人还是只有一个苹果;你有一种思想,我有一种思想,我们交换一下,一个人就有两种思想。
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
独学而无友,则孤陋而寡闻,开源、分享、白嫖!