Python爬虫(二)数据解析之BeautifulSoup

bs4是如何解析的

  • bs4数据解析
  • 解析原理:
    -实例化一个BeautifulSoup对象,将需要解析的页面源码加在到该对象中
    -调用BeautifulSoup对象中的方法和属性实现对标签定位和文本数据的提取

bs4 操作

#安装
	#- pip install bs4
	#- pip install lxml
#实例化方式
	#- BeautifulSoup(page_text,'lxml'):将互联网请求的数据加在到该对象
#bs4相关解析操作
#标签定位
	# soup.tagName:定位到第一个出现的TagName标签
	# 属性定位:soup.find('tagName',attrNmae='value')
	# find_all('tagName',attrName='value'):返回一个列表
	# 选择器定位:select('tagName'):返回列表
		#层级选择器
			#大于号(>):表示一个层级
			#空格:表示多个层级
#提取文本
	#string:将当前标签文本提取出来
	#text:子类全部文本提取出来
#提取属性
	tagName['attr']

bs4实战:爬取热门城市名称(find)

	import requests
	from bs4 import BeautifulSoup
	url = 'https://www.aqistudy.cn/historydata/'
	#请求头 UA检测一定要加
	headers={
 		'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36'
 	}
 	#发送请求,并携带请求头
	response = requests.get(url=url,headers=headers)
	#将响应页面数据传入到bs4实例中,在调用相关属性方法进行数据提取
	soup = BeautifulSoup(response.text,'lxml')
	#定位到ul标签属性名是class属性值是'unstyled'
	ulValue = soup.find('ul',class_='unstyled')
	#在通过.text提取所有ul标签下的文本数据
	ulValue.text

bs4实战2:爬取全部城市名称(find_all / select)

	#先导入相关包
	import requests
	from bs4 import BeautifulSoup
	#指定url
	url = 'https://www.aqistudy.cn/historydata/'
	#设置UA
	headers = {
		 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36'
	}
	 #请求数据,并携带请求头
	response = requests.get(url=url,headers=headers)
	#将响应页面数据传入到bs4实例中,在调用相关属性方法进行数据提取
	soup = BeautifulSoup(response.text,'lxml')
	#先用find定位到包裹全部城市的大标签,直接定位全部城市热门城市也会定位到
	Name = soup.find('div',class_='all')
	#在其定位全部城市
	NameList = Name.find_all('ul',class_='unstyled')
	#方式二:select选择器实现
	#NameList = soup.select("div[class='all'] li>a")
	#循环列表中的每个值,进行文本提取
	for value in NameList:
		#提取ul标签下所有的文本
		print(value.text)
	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值