bs4笔记

作者: 鲸随浪起 | 来源:发表于2018-11-05 10:25 被阅读0次

    bs4是什麽?
    它的作用是能够快速方便简单的提取网页中指定的内容,给我一个网页字符串,然后使用它的接口将网页字符串生成一个对象,然后通过这个对象的方法来提取数据
    lxml是什麽?
    lxml是一个解析器,也是下面的xpath要用到的库,bs4将网页字符串生成对象的时候需要用到解析器,就用lxml,或者使用官方自带的解析器 html.parser

    官方文档:https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/

    安装bs4
    pip install bs4
    pip install lxml

    属性

    要点:提取标签属性

    soup.a.attrs 返回一字典,里面是所有属性和值
    soup.a['href'] 获取href属性
    

    文本

    要点:提取文本内容

    #当标签里面还有标签的时候,string获取的为None,其他两个获取纯文本内容
    soup.a.string
    soup.a.text
    soup.a.get_text()
    get_text("",strip=True)    #去除所获得文本的空白、换行等,干净整洁
    

    find方法

    要点:找到唯一标签

    #find只能找到符合要求的第一个标签,他返回的是一个对象
    soup.find('a')
    soup.find('a', class_='xxx')
    soup.find('a', title='xxx')
    soup.find('a', id='xxx')
    soup.find('a', id=re.compile(r'xxx'))  #re方法
    

    find_all方法

    要点:找到所有标签,列表返回

    #返回一个列表,列表里面是所有的符合要求的对象
    soup.find_all('a')
    soup.find_all('a', class_='wang')
    soup.find_all('a', id=re.compile(r'xxx'))
    soup.find_all('a', limit=2)   #提取出前两个符合要求的a
    

    css选择器

    要点:和find_all一样找到所有标签,列表返回

    • 通过标签查找
    soup.select('title') 
    soup.select('a')
    soup.select('a', limit=2)   #提取出前两个符合要求的a
    soup.select('a',limit=2)[1].text  #提出a标签里符合要求的第一个,取出文本
    
    • 通过类名查找
    #通过class类名查找使用.
    soup.select('.sister')
    
    • 通过 id 名查找
    #通过id查找使用#
    soup.select('#link1')
    
    • 属性查找
    #查找a标签中class="sister"的
    soup.select('a[class="sister"]')
    

    extract()

    要点:移除指定标签,并返回结果

    biaoqian=soup.find('h1',{'id':"HEADING"})
    english_name=biaoqian.span.extract()
    

    相关文章

      网友评论

          本文标题:bs4笔记

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