爬虫:基于bs4库的html内容查找方法

<>.find_all(name,attrs,recursive,string,**kwargs)

返回一个列表类型,存储查找的结果。

name:对标签名称的检索字符串

attrs:对标签属性值得检索字符串,可标注属性检索

recursive:是对子孙全部检索,默认True

调用tag的 find_all() 方法时,Beautiful Soup会检索当前tag的所有子孙节点,如果只想搜索tag的直接子节点,可以使用参数 recursive=False .

string:<>...</>中字符串区域的检索字符串

一些具体案例可参考:https://www.cnblogs.com/zipon/p/6129280.html

 

>>> from bs4 import BeautifulSoup
>>> import requests
>>> r=requests.get("https://www.baidu.com/?tn=98012088_5_dg&ch=12")
>>> demo=r.text
>>> soup=BeautifulSoup(demo,"html.parser")
>>> for link in soup.find_all('a'):
	print(link.get('href'))           //找到所有a标签的href链接
>>> soup.find_all('a')           //找到所有的a标签
>>> soup.find_all(['a','b'])   //找到所有的a、b标签
>>> for tag in soup.find_all(True):
	print(tag.name)                    //查找所有的标签并打印出名字
demo='<p class="course">Python is a wonderful general-purpose programming language </p>'

soup=BeautifulSoup(demo,"html.parser")
soup.find_all('p','course') //查找p标签属性值为course的内容
soup.find_all(id='link1')    //查找id=link1的内容
soup.find_all(id='link')

import re   //导入正则表达式模块
soup.find_all(id=re.compile('link')) //输出以link开头但是与link不完全一致的标签信息

<tag>(..)等价于<tag>.find_all(..)

soup(..)等价于 soup.find_all(..)

 

                                                                  扩展方法            

方法说明
<>.find()搜索且只返回一个结果,字符串类型,同.find_all()参数
<>.find_parents()在先辈节点中搜索,返回列表类型,同.find_all()参数
<>.find_parent()在先辈节点中返回一个结果,字符串类型,桐.find()参数
<>.find_next_siblings()在后续平行节点中搜索,返回列表类型,同.find_all()参数
<>.find_next_sibling()在后续平行节点中返回一个结果,字符串类型,同.find()参数
<>.find_previous_siblings()在前序平行节点中搜索,返回列表类型,同.find_all()参数
<>.find_previous_sibling()在前序平行节点中返回一个结果,字符串类型,同.find参数

 

转载于:https://www.cnblogs.com/yorkmass/p/11109907.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值