美文网首页python编程
抓取页面元素--python篇

抓取页面元素--python篇

作者: sandy测试路 | 来源:发表于2018-06-12 15:19 被阅读0次

    目标:抓取该页面的Followers数量

    • 因为做自动化测试时经常需要抓取页面元素用作判断,所以这里作下简单的说明
    获取Followers数量

    所需包:

    • requests,bs4

    BeautifulSoup介绍

    1. 获取操作tag

    • 获取操作tag的接种方式:
    1. soup.find_all(name=None, attrs={}, recursive=True, text=None, limit=None, **kwargs),返回符合条件的所有标签,查找不到则返回[],可以传递标签名,标签属性,关键字参数,函数,True等
    2. soup.find(name=None, attrs={}, recursive=True, text=None, **kwargs),返回第一个符合条件的标签,查找不到则返回None
    3. soup.select(selector, _candidate_generator=None, limit=None),根据css选择器返回所有符合条件的标签
    4. soup.select_one(selector),返回符合css选择器的第一个标签

    2. 操作tag

    • tag.name ,获取标签名,例如:'div'
    • tag['attr_name'] , 获取标签的某个属性的值,string类型
    • tag['class'] ,获取标签的class属性值,list类型,例如:['orange', 'login']
    • tag.attrs ,获取标签的所有属性,dict类型
    • tag.get_text() ,返回标签的内容,或者 tag.text

    3. 实践

    from bs4 import BeautifulSoup
    import requests
    
    res = requests.get('https://gitee.com/maxiaoqian')
    # 如果不指定parser,会有警告,使用默认的html.parser,不同的系统解析可能会有差异
    soup = BeautifulSoup(res.text, 'html.parser')
    
    # 获取操作tag, <class 'bs4.element.Tag'>
    # 返回:
    '''
      <div class="follow-num" id="followers-number">
      42
      </div>
    '''
    tag = soup.find('div', attrs={'id': 'followers-number'})              # 查找树
    # tag = soup.find_all('div', attrs={'id': 'followers-number'})[0]
    # tag = soup.select_one('div#followers-number')                   # css selector方式
    # tag = soup.select('div#followers-number')[0]
    
    # 返回tag的内容: tag.text 或者 tag.get_text()
    print(tag.get_text().strip())    # 移除内容字符串中前后的空格,返回: '42'
    

    相关文章

      网友评论

        本文标题:抓取页面元素--python篇

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