html解析のBeautifulSoup

引子:

使用python爬虫对爬取网页进行解析的时候,如果使用正则表达式,有很多局限,比如标签中出现换行,或者标签的格式不规范,都有可能出现取不到数据,BeautifulSoup作为一个专门处理html格式的python第三方库,在格式处理上要明显优与正则表达式,而且使用简便。

安装:

下载beautifulsoup4-4.5.0,打开cmd,进入beautifulsoup文件目录,执行python setup.py install 进行安装

打开python命令行,执行from bs4 import BeautifulSoup 成功,则安装成功

使用:

获取指定标签及内容

soup=BeautifulSoup(text,"html.parser")  #text为html文本,"html.parser"指按html格式进行解析

li= soup.find_all(name="li",attrs={"class":"rlbh"}) #查找所有li标签,class类型为rlbh

find只返回第一个标签,find_all返回所有标签,findAll是beautifulsoup3 的方法,在bs4中也可以用,find_all是bs4中的方法。

find_all返回结果为list类型,如果需要在返回结果中继续匹配可以这样:

li= soup.find_all(name="li",attrs={"class":"rlbh"})
for i in li:
  #get count
  lbdj=i.find_all(name="span",attrs={"class":"lbdj"})  #匹配li结果中的所有span标签,且class类型为lbdj

获取链接

a=span[0].find_all(name="a",attrs={"target":"_blank"})  #获取a标签
href=a[0].get('href')  #获取a标签中href属性的内容
也可以直接a[0]['href'] 获取

获取内容

title=a[0].getText()  #获取a标签中的文本

如:<a href="http:127.0.0.1">localhost</a>获取到的就是localhost

  

原文地址:https://www.cnblogs.com/taurusfy/p/6867281.html