zoukankan      html  css  js  c++  java
  • 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

      

  • 相关阅读:
    【次大gcd】#uoj #48. 【UR #3】核聚变反应强度
    1591:数字计数
    数位DP模板
    1588:数字游戏
    [NOIP 2017普及组 No.1] 成绩
    [NOIP 2017普及组 No.3] 棋盘
    Apache(httpd)实现反向代理
    注册阿里云域名
    SSH常用命令
    Linux yum 安装Java和MySQL
  • 原文地址:https://www.cnblogs.com/taurusfy/p/6867281.html
Copyright © 2011-2022 走看看