python bs4解析网页_Python-bs4解析html

Beautiful Soup简介(简称bs4)

它是一个可以从HTML或XML文件中提取数据的Python库,它能够通过你喜欢的转换器实现惯用的文档导航、查找、修改文档的方式,节省工作时间

所有对象可以归纳为4种:

Tag:标签对象,例如

yoyoketang

,这就是一个标签

NavigableString:字符对象,如:这里是我的微信公众号:yoyoketagn

BeautifulSoup:就是整个html对象

Comment:注释对象,如:!-- for HTML5 --,它其实就是一个特殊NavigableString

安装pip install beautifulsoup4

1、通过标签的名称,来获取tag对象,如果有多个相同的标签名称,返回的是第一个,soup.head

2、获取标签中的字符文本,soup.head.title.string

3、tag.attrs可以打印出所有的属性,返回字典格式的,获取其中的某个属性,跟操作字典一样,如:tag.attrs['href'] 或者 tag['href'],由于class属性一般可以为多个,中间空格   隔开,所以class属性获取的是一个list类型

4、查找元素,find_all查找所有符合要求的,返回的是一个list对象

5、get_text()获取tag标签下所有的文本

6、replace替换字符串里面的特殊字符

练习一

from bs4 import BeautifulSoup

htmldemo = '''

yoyoketang

yoyoketang

这里是我的微信公众号:yoyoketang

lafiddler教程

python笔记

selenium文档

快来关注吧!

...

'''

#html.parser是解析器

soup = BeautifulSoup(htmldemo, 'html.parser')

#获取标签head

print(soup.head)

#获取字符

print(soup.head.title.string)

print(soup.a.attrs)

print(soup.a.attrs['href'])

print(soup.a['href'])

#根据class查找,不能直接用class查找 , class_='sister'

s = soup.find_all(class_='sister')

#二次查找

s2 = s[0].find_all(id='p')

#根据id查找

m = soup.find_all(id='link3')

#获取标签下的所有文本

t = soup.body.get_text()

练习二

from bs4 import BeautifulSoup

import requests

import os

#请求一个图片地址,获取其中所有的图片url和title

r = requests.get('http://699pic.com/sousuo-218808-13-1.html')

soup = BeautifulSoup(r.content, 'html.parser')

images = soup.find_all(class_='lazy')

curpath = os.path.dirname(os.path.realpath(__file__))

for i in images:

jpg_url = i['data-original']

title = i['title']

print(jpg_url)

print(title)

print('')

#下载获取到的图片,下载到curpath,名字title.jpg

with open(curpath+'\\'+title+'.jpg','wb') as f:

f.write(requests.get(jpg_url).content)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值