美文网首页python
python - BeautifulSoup 简单使用

python - BeautifulSoup 简单使用

作者: 精神病患者link常 | 来源:发表于2019-08-22 15:50 被阅读0次
    # -*- coding: UTF-8 -*-
    
    import urllib2, re, urllib, socket
    from bs4 import BeautifulSoup
    
    def SoupHtml(html):
        soup = BeautifulSoup(html, "html.parser")
    
    html = '''
    <li>
        <h5>
            <a href="/html/132663.htm" title="2019七夕早安图片大全 七夕情人节鲜花花束图片" target="_blank">2019七夕早安图片大全 七夕情人节鲜花花束图片</a>
        </h5>
        <div class="cover">
            <a href="/html/132663.htm" title="2019七夕早安图片大全 七夕情人节鲜花花束图片" target="_blank">
                <img src='//pic.feizl.com/upload/allimg/190808/gxtxfcgtvdxvmpo.jpg' border='0' width='160' height='110'>
            </a>
        </div>
        <a id="love" class="like" href="javascript:" onClick="javascript:postDigg('good',132663)">
        </a>
        <div class="date" id="test">发布时间:2019-08-08</div>
    </li>
    '''
    SoupHtml(html)
    
    

    find 查询一个标签

    • 根据class找出标签内的内容

    print soup.find(class_="cover") # class 是关键字  所有使用class_
    或者
    print soup.find(attrs={'class': 'cover'})
    
    • 根据id找出标签内的内容

    print soup.find(id="test")
    或者
    print soup.find(attrs={'id': 'test'})
    
    • 获取标签的属性

    print soup.find(class_="like").get("id")
    print soup.find('a', id="love").get("href")
    
    • 获取标签里面的内容

    print soup.find('div', id="test").get_text()
    
    • 获取标签所有的属性

    print soup.find('a', id="love").attrs
    
    • 获取标签的子节点

    print soup.find(class_="cover").children # listiterator object at 0x10da27890> 需通过遍历得到
    for i in soup.find(class_="cover").children:  
        print(i) # 标签
    
    • 判断标签是否存在title属性

    print soup.find(id="love").has_attr("title")
    

    find_all 查询多个标签

    • 获取所有class 包含 da 的标签:正则

    print soup.find_all('div', class_=re.compile("da"))
    
    • 获取所有div 标签

    print soup.find_all('div')
    
    • 获取id="test"的所有的div 标签

    print soup.find_all('div', id="test")
    
    • 获取多个标签

    print soup.find_all(['a', 'div'])
    
    • 获取属性id=love的所有标签

    print soup.find_all(id="love")
    
    • 获取属性id=love id=test的所有标签

    print soup.find_all(id=["love", "test"])
    

    select 查询多个标签

    • 得到所有的a标签

    print soup.select('a')
    
    • 得到class=like的所有标签

    print soup.select('.like')
    
    • 得到id=test的所有标签

    print soup.select('#test')
    
    • 得到a标签中id=test的所有标签

    print soup.select('a #test')
    

    相关文章

      网友评论

        本文标题:python - BeautifulSoup 简单使用

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