Python3 BeautifulSoup

2018-08-14  本文已影响20人  McporDa

之前有过几次Python的学习史,每次都无疾而终,由于并没有实际的工作需要用到Python,我把学到的东西做个总结,忘记的时候拿出来看看,希望有一天能学以致用。

先总结再分析
BeautifulSoup是一个HTML或 XML的解析库,它会自动将输入文档转换为Unicode编码,输出文档转换为UTF-8编码
BeautifulSoup在解析时依赖第三方解析器,这就是为什么参数里面要加'lxml',安装lxml时会提示安装xcode,也就是需要安装C语言库。

image

from bs4 import BeautifulSoup          #bs4库里面导入BeautifulSoup模块

soup = BeautifulSoup(markup,'lxml')    #经典用法,各大教程可见

然后我们研究soup的属性和使用方法,type(soup)得到的是<class 'bs4.BeautifulSoup'>

Soup使用方法:
1.节点选择器
直接调用节点的名称就可以选择节点元素,在调用string属性就可以得到节点内的文本内容了,适用于单个节点层次非常清晰的html文档。


import requests

from bs4import BeautifulSoup

response = requests.get('https://www.qiushibaike.com/').text   #获取网页,并转为文本

soup = BeautifulSoup(response,'lxml')   #将对象传入解析器

span = soup.span.string    #定位span标签,获取文本内容

print(span)

输出结果:

image

用find_all('span')可以查询出所有span标签的内容 或者find_all(节点 = '节点属性'),还有子父兄弟节点等,目前用得少,暂不深究。
2.CSS选择器
使用CSS选择器时,只需要调用select()方法,获取多行信息时需要使用for遍历,获取文本方式有两种 .string .get_text()

在取得含有特定CSS属性的元素时,标签名不加任何修饰,类名前加点,id名前加 #。CSS选择器使用方法请点击(https://www.cnblogs.com/ALittleBee/p/7702560.html)
3.正则
使用正则最精准,但容易写错

上一篇下一篇

猜你喜欢

热点阅读