python爬虫之五_HTML解析之bs4

本文详细介绍了Python爬虫中BeautifulSoup库的使用,包括HTML解析、查找和访问目标、编码处理、类的使用以及解析器的选择。重点讲解了find_all、find、select等方法,以及如何通过CSS选择器提取元素。同时提到了BeautifulSoup的四种常见对象:Tag、BeautifulSoup、NavigableString和Comment,并阐述了遍历文档树的方法。
摘要由CSDN通过智能技术生成

3.30数据解析-bs4库的基本介绍
1)lxml只会局部遍历,BeautifulSoup是基于HTML DOM,会载入并解析整个文档
2)BeautifulSoup可以选择python标准HTML解析器、lxml解析器、re解析器、CSS选择器
3)解析速度:re>lxml>BeautifulSoup
使用难度:BeautifulSoup>lxml>re

从使用方式上看BeautifulSoup、lxml、re的区别在于:
lxml、re都有自己的语法和表达式,需要自己写提取规则,而BeautifulSoup可以直接用API直接提取目标

3.31bs4库的基本使用

from bs4 import BeautifulSoup
html='''...'''
soup=BeautifulSoup(html,'lxml')

注意:
1)BeautifulSoup只能对html字符串进行解析,无法直接解析本地的html文档
2)BeautifulSoup底层使用解析器解析html文档生成DOM树,只会查找直接基于DOM树;默认使用html.parser、lxml速度更快、html5lib容错性最强;一般建议使用lxml,异常时使用html5lib

3.32bs4库提取数据
使用find_all、find方法提取元素

soup=BeautifulSoup(html,'lxml')
#获取所有指定标签元素
trs=soup.find_all('tr')
#获取第X个指定标签元素
trs=soup.find_all('tr',limit=2)[1]
#获取指定属性值的指定标签,两种方式
trs=soup.find_all('tr',class_='even')
trs=soup.find_all('tr',attrs={
   'class':"event"})
#获取多个指定属性值的指定标签,两种方式
trs=soup.find_all('tr',class_='even',id='test')
trs=soup.find_all('tr',attrs{
   'class':"event",'id':"test"})
#获取标签属性值,两种方式
aList=soup.find_all(
好的,这是一个关于Python爬虫获取新浪新闻信息的问题。首先,我们需要先了解一下爬虫的基本概念和工作原理。 爬虫是一种自动化程序,可以模拟人类对网站的访问并自动抓取数据。它可以通过网络上的URL链接来获取网页内容,并将其转换成结构化的数据,供后续的数据分析或其他用途。 下面是一个简单的Python爬虫程序,可以用来获取新浪新闻的信息: ```python import requests from bs4 import BeautifulSoup url = 'https://news.sina.com.cn/' r = requests.get(url) r.encoding = 'utf-8' soup = BeautifulSoup(r.text, 'html.parser') news_list = soup.find_all('a', class_='news-item') for news in news_list: print(news.text.strip()) print(news['href']) ``` 这个程序使用了Python的requests库和BeautifulSoup库来获取新浪新闻的信息。首先,我们需要将新浪新闻的URL链接赋值给变量url,然后使用requests库来发送HTTP请求,获取网页内容。接着,我们需要使用BeautifulSoup库来解析网页内容,提取出我们需要的信息。在这个例子中,我们使用了find_all方法来查找所有class为news-item的a标签,并使用循环打印出每个新闻的标题和链接。 当然,这只是一个简单的例子,实际上,爬虫的应用非常广泛,可以用来获取各种类型的数据,例如文本、图像、音频等等。但是,请注意,爬虫的使用需要遵守法律法规和道德规范,不要进行恶意攻击或侵犯他人隐私。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值