XML --通过标签形式构建信息 <title></title> <!-- -->
JSON -- 通过键值对的形式构建,key:value 表示,有数据类型的键值对,键值对之间可以嵌套使用
YAML --无类型的键值对表示
获取所有的链接内容
from bs4 import BeautifulSoup
import requests
demo =requests.get("https://www.opticres.com")
soup = BeautifulSoup(demo.text,"html.parser")
for link in soup.find_all('a'):
print(link.get('href'))
<>.find_all(name,sttrs,recursive,string,**kwargs)
返回一个列表类型,存储查找的结果
name:对标签名称检索字符串
attrs:对标签属性值检索字符串,可标注属性检索
recusive:是否对所有子孙全部查找,默认是true
string:<></>中字符串区域的检索字符串
from bs4 import BeautifulSoup
import requests
demo =requests.get("https://www.baidu.com")
soup = BeautifulSoup(demo.text,"html.parser")
# for link in soup.find_all('a'):
# print(link.get('href'))
for link in soup.find_all(['a','b']):
print(link.get('href'))
结果

打印出所有标签
from bs4 import BeautifulSoup
import requests
demo =requests.get("https://www.baidu.com")
soup = BeautifulSoup(demo.text,"html.parser")
# for link in soup.find_all('a'):
# print(link.get('href'))
for tag in soup.find_all(True):
print(tag.name)
结果:

筛选以b开头的标签
要先引入正则表库 import re
from bs4 import BeautifulSoup
import requests
import re
demo =requests.get("https://www.baidu.com")
soup = BeautifulSoup(demo.text,"html.parser")
for tag in soup.find_all(re.compile('b')):
print(tag.name)
结果

筛选p标签中含有 jiashu 属性
from bs4 import BeautifulSoup
import requests
import re
demo =requests.get("https://www.opticres.com")
soup = BeautifulSoup(demo.text,"html.parser")
for tag in soup.find_all('p','jianshu'):
print(tag)

准确查找id属性是hiddenCom
from bs4 import BeautifulSoup
import requests
import re
demo =requests.get("https://www.opticres.com")
soup = BeautifulSoup(demo.text,"html.parser")
for tag in soup.find_all(id='hiddenCom'):
print(tag)

查找包含link,利用正则
from bs4 import BeautifulSoup
import requests
import re
demo =requests.get("https://www.opticres.com")
soup = BeautifulSoup(demo.text,"html.parser")
for tag in soup.find_all(re.compile('link')):
print(tag)
结果

利用string 检索字符串 Flyin Optronics Co.,Ltd,要精确
from bs4 import BeautifulSoup
import requests
import re
demo =requests.get("https://www.opticres.com")
soup = BeautifulSoup(demo.text,"html.parser")
for tag in soup.find_all(string = 'Flyin Optronics Co.,Ltd'):
print(tag)
结果

利用正则检索包含All Rights
from bs4 import BeautifulSoup
import requests
import re
demo =requests.get("https://www.opticres.com")
soup = BeautifulSoup(demo.text,"html.parser")
for tag in soup.find_all(string = re.compile("All Rights")):
print(tag)

拓展
| 方法 | 说明 |
| <>.find() | 搜索且只返回一个结果,字符串类型,同.find_all()参数 |
| <>.find_parents() | 在先辈节点中搜索,返回列表类型,同.find_all()参数 |
| <>.find_parent() | 在先辈节点中返回一个结果,字符串类型,同.find()参数 |
| <>.find_next_siblings() | 在后续平行节点中搜索,返回列表类型,同.find_all()参数 |
| <>.find_next_sibling() | 在后续平行节点中返回一个结果,字符串类,同.find_all()参数 |
| <>.find previous_siblings() | 在前序平行节点中搜索,返回列表类型,同.find_all()参数 |
| <>.find previous_sibling() | 在前序平行节点中返回一个结果,字符串类型,同.find(参数 |
本文介绍如何使用Python的requests和BeautifulSoup库从网站上抓取链接及特定标签内容,并展示了如何精确查找带有指定属性的标签,包括使用正则表达式进行高级检索。
2183

被折叠的 条评论
为什么被折叠?



