美文网首页
Python3 BeautifulSoup

Python3 BeautifulSoup

作者: McporDa | 来源:发表于2018-08-14 16:49 被阅读20次

    之前有过几次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.正则
    使用正则最精准,但容易写错

    相关文章

      网友评论

          本文标题:Python3 BeautifulSoup

          本文链接:https://www.haomeiwen.com/subject/zmmvbftx.html