1.简介

BeautifulSoup库也是一个HTML/XML的解析器,其使用起来很简单,但是其实解析网站用xpath和re已经足矣,这个库其实很少用到。因为其占用内存资源还是比xpath更高。

'''
BeautifulSoup库
和lxml一样,BeautifulSoup也是一个HTML/XML的解析器,主要的功能也是解析和提取HTML/XML数据。
LXML只会局部遍历,而BeautifulSoup是基于HTML DOM文档的,会载入整个文档,解析整个DOM树,因此时间和内存
开销都会大很多,所以性能要低于lxml。
BeautifulSoup用来解析HTML比较简单,API非常人性化,支持CSS选择器、python标准库中的HTML解析器,也支持lxml
的XML解析器。
BeautifulSoup 3 目前已经停止开发,推荐现在的项目使用BeautifulSoup 4.
BeautifulSoup的优点是使用方便

几大解析工具对比:
解析工具            解析速度            使用难度
BeautifulSoup       最慢                最简单
lxml                快                   简单
正则                最快                 最难

'''

2.基本使用

#  -*-coding:utf8 -*-
from bs4 import BeautifulSoup

html="""

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>职位搜索 | 社会招聘 | Tencent 腾讯招聘</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <!-- Js Css -->
             <link media="screen" href="//cdn.m.tencent.com/hr_static/css/all.css?max_age=86412" type="text/css" rel="stylesheet" />
    <script type="text/javascript" src="//cdn.m.tencent.com/hr_static/js/jquery-1.7.2.min.js"></script>
    <script type="text/javascript" src="//cdn.m.tencent.com/hr_static/js/jquery-ui-1.7.2.custom.min.js"></script>
    <script type="text/javascript" src="//cdn.m.tencent.com/hr_static/js/thickbox.js"></script>
    <link media="screen" href="//cdn.m.tencent.com/hr_static/css/thickbox.css" type="text/css" rel="stylesheet" />
    <script type="text/javascript" src="//cdn.m.tencent.com/hr_static/js/functions.js"></script>
    <script type="text/javascript" src="//cdn.m.tencent.com/hr_static/js/utils.js"></script>
    <script language="javascript" src="//vm.gtimg.cn/tencentvideo/txp/js/txplayer.js" charset="utf-8"></script>
    <script type="text/javascript" src="//cdn.m.tencent.com/hr_static/js/all.js?max_age=86412"></script>    <!-- Js Css -->
    <script>
        var keywords_json = [];
    </script>
</head>

<body>
        <div id="header">
        <div class="maxwidth">
            <a href="index.php" class="left" id="logo"><img src="//cdn.m.tencent.com/hr_static/img/logo.png"/></a>
            <div class="right" id="headertr">
                <div class="right pl9" id="topshares">
                    <div class="shares">
                        <span class="left">分享到:</span>
                        <!--<a href="javascript:;" onclick="shareto('qqt','top');" id="qqt" title="分享到腾讯微博">分享到腾讯微博</a>-->
                        <a href="javascript:;" onclick="shareto('qzone','top');" id="qzone" title="分享到QQ空间">分享到QQ空间</a>
                        <!--<a href="javascript:;" onclick="shareto('pengyou','top');" id="pengyou" title="分享到腾讯朋友">分享到腾讯朋友</a>-->
                        <a href="javascript:;"  onclick="shareto('sinat','top');"id="sinat" title="分享到新浪微博">分享到新浪微博</a>
                        <!--<a href="javascript:;"  onclick="shareto('renren','top');"id="renren" title="分享到人人网">分享到人人网</a>-->
                        <!--<a href="javascript:;"  onclick="shareto('kaixin001','top');"id="kaixin" title="分享到开心网">分享到开心网</a>-->
                        <div class="clr"></div>
                    </div>
                    <!--<a href="javascript:;">分享</a>-->
                </div>
                <!--<div class="right pl9">-->
                    <!--<a href="http://t.qq.com/QQjobs" id="tqq" target="_blank">收听腾讯招聘</a>-->
                <!--</div>-->
                <div class="right pr9">
                                                                <a href="login.php" id="header_login_anchor">登录</a><span class="plr9">|</span><a href="reg.php">注册</a>
                                        <span class="plr9">|</span><a href="question.php">反馈建议</a>
                    <span class="plr9">|</span><a href="http://careers.tencent.com/global" target="_blank">Tencent Global Talent</a>
                    <script>
                        var User_Account = "";
                    </script>
                                    </div>
                <div class="clr"></div>
            </div>
            <div class="clr"></div>
        </div>
        <div id="menus">
            <div class="maxwidth">
                <ul id="menu" class="left">
                    <li id="nav1" ><a href="index.php">&nbsp;</a></li>
                    <li id="nav2" class="active" ><a href="social.php">&nbsp;</a></li>
                    <li id="nav3"><a href="about.php">&nbsp;</a></li>
                    <li id="nav4"><a href="workInTencent.php">&nbsp;</a></li>
                </ul>
                <a class="right texti9" target="_blank" id="navxy" href="http://join.qq.com">校园招聘</a>
                <div class="clr"></div>
            </div>
        </div>
    </div>    <div id="sociaheader">
            </div>
    <div id="position" class="maxwidth">
        <a name="a" id="a" href='www.baidu.com'></a>
        <div class="left wcont_b box">
            <div class="blueline"><div class="butzwss"></div></div>
            <form id="searchform" class="buts1">
                <div id="searchrow1">
                    <div id="search1"><input id="search2" name="keywords" t="请输入关键词" value="" class="left"/><input class="left" id="search3" type="submit" value=""/><div class="clr"></div></div>
                    <input type="hidden" name="lid" value="0"/>
                    <input type="hidden" name="tid" value="87"/>
                </div>
                <div id="searchrow2">
                    <div class="srow2l left"></div>
                    <div class="left items pl9 itemnone" id="additems">
                        <a href="position.php?keywords=&tid=87" class="item active"><span><font>全部</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=2218"><span><font>深圳</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=2156"><span><font>北京</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=2175"><span><font>上海</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=2196"><span><font>广州</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=2268"><span><font>成都</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=2459"><span><font>中国香港</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=2426"><span><font>昆明</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=33"><span><font>美国</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=2355"><span><font>武汉</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=32"><span><font>韩国</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=59"><span><font>日本</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=2252"><span><font>杭州</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=66"><span><font>印度尼西亚</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=60"><span><font>马来西亚</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=2283"><span><font>福州</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=2314"><span><font>南宁</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=90"><span><font>荷兰</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=2226"><span><font>重庆</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=2320"><span><font>合肥</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=45"><span><font>泰国</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=2225"><span><font>天津</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=2436"><span><font>贵阳</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=2393"><span><font>太原</font></span></a>
                                            </div>
                                        <div class="left"><a href="javascript:;" class="more2">更多</a></div>
                                        <div class="clr"></div>
                </div>
                <div id="searchrow3">
                    <div class="srow2l left"></div>
                    <div class="left items pl9">
                        <a href="position.php?keywords=&lid=0" class="item"><span><font>全部</font></span></a>
                                                    <a class="item active" href="position.php?keywords=&lid=0&tid=87"><span><font>技术类</font></span></a>
                                                    <a class="item" href="position.php?keywords=&lid=0&tid=82"><span><font>产品/项目类</font></span></a>
                                                    <a class="item" href="position.php?keywords=&lid=0&tid=83"><span><font>市场类</font></span></a>
                                                    <a class="item" href="position.php?keywords=&lid=0&tid=81"><span><font>设计类</font></span></a>
                                                    <a class="item" href="position.php?keywords=&lid=0&tid=84"><span><font>职能类</font></span></a>
                                                    <a class="item" href="position.php?keywords=&lid=0&tid=85"><span><font>内容编辑类</font></span></a>
                                                    <a class="item" href="position.php?keywords=&lid=0&tid=86"><span><font>客户服务类</font></span></a>
                                            </div>
                    <div class="clr"></div>
                </div>
            </form>
            <table class="tablelist" cellpadding="0" cellspacing="0">
                <tr class="h">
                    <td class="l" width="374">职位名称</td>
                    <td>职位类别</td>
                    <td>人数</td>
                    <td>地点</td>
                    <td>发布时间</td>
                </tr>
                                <tr class="even">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49165&keywords=&tid=87&lid=0">CSIG16-自动驾驶点云感知算法工程师(北京)</a></td>
                    <td>技术类</td>
                    <td>1</td>
                    <td>北京</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="odd">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49166&keywords=&tid=87&lid=0">31504-高级运营开发工程师</a></td>
                    <td>技术类</td>
                    <td>2</td>
                    <td>深圳</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="even">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49160&keywords=&tid=87&lid=0">CSIG16-底图渲染引擎开发工程师</a></td>
                    <td>技术类</td>
                    <td>1</td>
                    <td>北京</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="odd">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49162&keywords=&tid=87&lid=0">PCG10-QQ浏览器推荐算法工程师</a></td>
                    <td>技术类</td>
                    <td>2</td>
                    <td>深圳</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="even">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49158&keywords=&tid=87&lid=0">CSIG15-语音识别算法研究员</a></td>
                    <td>技术类</td>
                    <td>1</td>
                    <td>北京</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="odd">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49145&keywords=&tid=87&lid=0">15851-游戏后台开发工程师(深圳)</a></td>
                    <td>技术类</td>
                    <td>1</td>
                    <td>深圳</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="even">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49141&keywords=&tid=87&lid=0">PCG19-大数据开发工程师(北京)</a></td>
                    <td>技术类</td>
                    <td>1</td>
                    <td>北京</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="odd">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49136&keywords=&tid=87&lid=0">22989-腾讯云API高级研发工程师</a></td>
                    <td>技术类</td>
                    <td>2</td>
                    <td>深圳</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="even">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49137&keywords=&tid=87&lid=0">22989-腾讯云API开源工程师</a></td>
                    <td>技术类</td>
                    <td>2</td>
                    <td>深圳</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="odd">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49130&keywords=&tid=87&lid=0">WXG03-小程序推荐算法工程师</a></td>
                    <td>技术类</td>
                    <td>1</td>
                    <td>广州</td>
                    <td>2019-04-05</td>
            </table>
        </div>
        <div class="right wcont_s box">
            <div class="blueline"><div class="butcjwt"></div></div>
            <div class="module_faqs square"><a href="faq.php?id=5" title="如何应聘腾讯公司的职位?">如何应聘腾讯公司的职位?</a><a href="faq.php?id=3" title="应届生如何应聘?">应届生如何应聘?</a><a href="faq.php?id=19" title="腾讯应聘流程是什么?">腾讯应聘流程是什么?</a><a href="faq.php?id=20" title="我注册了简历,但为什么没有人联系我?">我注册了简历,但为什么没...</a><a href="faq.php?id=22" title="我忘记密码了,怎么办?">我忘记密码了,怎么办?</a><a href="faq.php?id=23" title="如何进行简历修改?">如何进行简历修改?</a></div>        </div>
        <div class="clr"></div>
    </div>
       <div id="homeDep"></div>        <div id="footer">
        <div>
            <a href="http://www.tencent.com/" class="test" id="test">关于腾讯</a><span>|</span><a href="http://www.qq.com/contract.shtml" target="_blank">服务条款</a><span>|</span><a href="http://hr.tencent.com/" target="_blank">腾讯招聘</a><span>|</span><a href="http://careers.tencent.com/global" target="_blank">Tencent Global Talent</a><span>|</span><a href="http://gongyi.qq.com/" target="_blank">腾讯公益</a><span>|</span><a href="http://service.qq.com/" target="_blank">客服中心</a>
        </div>
        <p>Copyright &copy; 1998 - 2019 Tencent. All Rights Reserved.</p>
    </div>
    <script type="text/javascript" src="//tajs.qq.com/stats?sId=64934792" charset="UTF-8"></script>
</body>
</html>
"""
#传入html代码,指定解析器
#指定解析器可以不传,如果不传,那么会用BeautifulSoup自带的解析器
'''
主要解析器,以及他们的优缺点:
解析器                                 使用方法                                   优势                           劣势
python标准库                 BeautifulSoup(markup,'html.parser')           python内置的标准库            python2.7.3 or3.2.2前的版本中文档容错能力差
                                                                           执行速度适中
                                                                           文档容错能力强
lxml HTML解析器              BeautifulSoup(markup,'lxml')                  速度快                        需要安装C语言库
                                                                           文档容错能力强
lxml XML解析器               BeautifulSoup(markup,'xml')                   速度快
                             BeautifulSoup(markup,['lxml','xml'])          唯一支持xml的解析器           需要安装C语言库
html5lib                     BeautifulSoup(markup,'html5lib')              最好的容错性                  速度慢
                                                                           以浏览器的方式解析文档        不依赖外部扩展
                                                                           生成HTML5格式的文档

'''
soup=BeautifulSoup(html,'lxml')
# print(bs.prettify())  #美化html

#1.获取所有tr标签
# trs=soup.find_all('tr')
#返回的是一个列表
# print(trs)
# for tr in trs:
#     print(tr)
    # print('---------')
    #是一个tag对象
    # print(type(tr))

#2.获取第2个tr标签
# trs=soup.find_all('tr',limit=2)
# print(trs[1])

#3.获取所有class等于even的tr标签
#如果按关键字传参,class属性要写成class_
# trs=soup.find_all('tr',class_='even')
# for tr in trs:
#     print(tr)
#     print('---------------')

# trs=soup.find_all('tr',attrs={'class':'even'})
# for tr in trs:
#     print(tr)
#     print('---------------')

#4.将所有id等于test,class也等于test的a标签提取出来
# alist=soup.find_all('a',attrs={'id':'test','class':'test'})
# alist=soup.find_all('a',id='test',class_='test')
# for a in alist:
#     print(a)

#5.获取所有a标签的href属性
# alist=soup.find_all('a')
# for a in alist:
    #1.通过下标操作的方式
    # href=a['href']
    #2.通过attrs属性的方式
    # href=a.attrs['href']
    # print(href)

#6.获取所有职位信息,并且是纯文本信息
trs=soup.find_all('tr')[1:]
movies=[]
# for tr in trs:
#     tds=tr.find_all('td')
#     title=tds[0].string
#     category=tds[1].string
#     nums=tds[2].string
#     city=tds[3].string
#     pubtime=tds[4].string
#     movie={
#         'title':title,
#         'category':category,
#         'nums':nums,
#         'city':city,
#         'pubtime':pubtime
#     }
#     movies.append(movie)
# print(movies)

# for tr in trs:
#     #tr.strings可以把所有非标签性的字符串全部拿出来.会把换行符号'\n'也拿出来
#     # infos=list(tr.strings)
#     #stripped_strings可以获取所有非空白的字符
#     infos=list(tr.stripped_strings)
#     movie={}
#     movie['title']=infos[0]
#     movie['category']=infos[1]
#     movie['nums']=infos[2]
#     movie['city']=infos[3]
#     movie['pubtime']=infos[4]
#     movies.append(movie)
# print(movies)

#find_all的使用
#在提取标签的时候,第一个参数是标签的名字。如果在提取标签的时候想要使用标签属性进行
#过滤,那么可以在这个方法中通过关键字参数的形式,将属性的名字以及对应的值传进去,
#或者是使用'attrs'属性,将所有的属性以及对应的值放在一个字典中传给'attrs'属性

#find和find_all的区别,用法极其相似
#find:找到第一个满足条件的标签就返回。只会返回一个
#find_all:将所有满足条件的标签都返回。返回多个,以列表的形式
a=soup.find('a')
print(a)

#使用find和find_all的过滤条件
#1.关键字参数:将属性的名字作为关键字参数的名字,以属性的值作为关键字参数的值进行过滤
#2.attrs参数:将属性条件放到一个字典中,传给attrs参数

#获取标签的属性:
#1.href=a['href']
#2.href=a.attrs['href']

#strings和stripped_strings、string属性以及get_text方法:
#1.string:获取某个标签下的非标签字符串.返回来的是个字符串。如果有多行字符,那么则获取不到
#2.strings:获取某个标签下的子孙非标签字符串。返回来的是个生成器
#3.stripped_strings:获取某个标签下子孙非标签字符串,会去掉空白字符。返回来的是个生成器
#4.get_text:获取某个标签下的子孙非标签字符串。不是以列表的形式返回,是以普通字符串返回
tr=soup.find_all('tr')[1]
text=tr.get_text()

3.css选择器介绍

#  -*-coding:utf8 -*-
# CSS选择器
'''
1.根据标签的名字选择
 p{
            background-color: pink;
    }
2.根据类名选择,那么要在类的前面加一个点
.line{
            background-color: pink;
        }
3.根据id名字选择,那么要在id的前面加一个#号
#box{
            background-color: pink;
        }
4.查找子孙元素。那么要在子孙元素中间有一个空格
 #box p {
            background-color: pink;
        }
5.直接查找子元素,那么要在父子元素中间由一个>。(查找的是子级别的元素)
 #box > p {
            background-color: pink;
        }
6.根据属性的名字进行查找。那么应该先写标签名字,然后再在中括号中写属性的值

input[name="username"] {
            background-color: pink;
        }
7.在根据类名或id进行查找的时候,如果还要根据标签名进行过滤,那么可以在类的前面或者id的签名
加上标签的名字
 div#line {
            background-color: pink;
        }

div.line {
    background-color: pink;
}
'''

4.select和css选择器提取元素

#  -*-coding:utf8 -*-

from bs4 import BeautifulSoup
#1.获取所有的tr标签
#2.获取第2个tr标签
#3.获取所有class等于even的tr标签
#4.获取所有id等于test,class也等于test的a标签提取出来
#5.获取所有a标签的href属性
#6.获取所有的职位信息(纯文本)

html="""

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>职位搜索 | 社会招聘 | Tencent 腾讯招聘</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <!-- Js Css -->
             <link media="screen" href="//cdn.m.tencent.com/hr_static/css/all.css?max_age=86412" type="text/css" rel="stylesheet" />
    <script type="text/javascript" src="//cdn.m.tencent.com/hr_static/js/jquery-1.7.2.min.js"></script>
    <script type="text/javascript" src="//cdn.m.tencent.com/hr_static/js/jquery-ui-1.7.2.custom.min.js"></script>
    <script type="text/javascript" src="//cdn.m.tencent.com/hr_static/js/thickbox.js"></script>
    <link media="screen" href="//cdn.m.tencent.com/hr_static/css/thickbox.css" type="text/css" rel="stylesheet" />
    <script type="text/javascript" src="//cdn.m.tencent.com/hr_static/js/functions.js"></script>
    <script type="text/javascript" src="//cdn.m.tencent.com/hr_static/js/utils.js"></script>
    <script language="javascript" src="//vm.gtimg.cn/tencentvideo/txp/js/txplayer.js" charset="utf-8"></script>
    <script type="text/javascript" src="//cdn.m.tencent.com/hr_static/js/all.js?max_age=86412"></script>    <!-- Js Css -->
    <script>
        var keywords_json = [];
    </script>
</head>

<body>
        <div id="header">
        <div class="maxwidth">
            <a href="index.php" class="left" id="logo"><img src="//cdn.m.tencent.com/hr_static/img/logo.png"/></a>
            <div class="right" id="headertr">
                <div class="right pl9" id="topshares">
                    <div class="shares">
                        <span class="left">分享到:</span>
                        <!--<a href="javascript:;" onclick="shareto('qqt','top');" id="qqt" title="分享到腾讯微博">分享到腾讯微博</a>-->
                        <a href="javascript:;" onclick="shareto('qzone','top');" id="qzone" title="分享到QQ空间">分享到QQ空间</a>
                        <!--<a href="javascript:;" onclick="shareto('pengyou','top');" id="pengyou" title="分享到腾讯朋友">分享到腾讯朋友</a>-->
                        <a href="javascript:;"  onclick="shareto('sinat','top');"id="sinat" title="分享到新浪微博">分享到新浪微博</a>
                        <!--<a href="javascript:;"  onclick="shareto('renren','top');"id="renren" title="分享到人人网">分享到人人网</a>-->
                        <!--<a href="javascript:;"  onclick="shareto('kaixin001','top');"id="kaixin" title="分享到开心网">分享到开心网</a>-->
                        <div class="clr"></div>
                    </div>
                    <!--<a href="javascript:;">分享</a>-->
                </div>
                <!--<div class="right pl9">-->
                    <!--<a href="http://t.qq.com/QQjobs" id="tqq" target="_blank">收听腾讯招聘</a>-->
                <!--</div>-->
                <div class="right pr9">
                                                                <a href="login.php" id="header_login_anchor">登录</a><span class="plr9">|</span><a href="reg.php">注册</a>
                                        <span class="plr9">|</span><a href="question.php">反馈建议</a>
                    <span class="plr9">|</span><a href="http://careers.tencent.com/global" target="_blank">Tencent Global Talent</a>
                    <script>
                        var User_Account = "";
                    </script>
                                    </div>
                <div class="clr"></div>
            </div>
            <div class="clr"></div>
        </div>
        <div id="menus">
            <div class="maxwidth">
                <ul id="menu" class="left">
                    <li id="nav1" ><a href="index.php">&nbsp;</a></li>
                    <li id="nav2" class="active" ><a href="social.php">&nbsp;</a></li>
                    <li id="nav3"><a href="about.php">&nbsp;</a></li>
                    <li id="nav4"><a href="workInTencent.php">&nbsp;</a></li>
                </ul>
                <a class="right texti9" target="_blank" id="navxy" href="http://join.qq.com">校园招聘</a>
                <div class="clr"></div>
            </div>
        </div>
    </div>    <div id="sociaheader">
            </div>
    <div id="position" class="maxwidth">
        <a name="a" id="a" href='www.baidu.com'></a>
        <div class="left wcont_b box">
            <div class="blueline"><div class="butzwss"></div></div>
            <form id="searchform" class="buts1">
                <div id="searchrow1">
                    <div id="search1"><input id="search2" name="keywords" t="请输入关键词" value="" class="left"/><input class="left" id="search3" type="submit" value=""/><div class="clr"></div></div>
                    <input type="hidden" name="lid" value="0"/>
                    <input type="hidden" name="tid" value="87"/>
                </div>
                <div id="searchrow2">
                    <div class="srow2l left"></div>
                    <div class="left items pl9 itemnone" id="additems">
                        <a href="position.php?keywords=&tid=87" class="item active"><span><font>全部</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=2218"><span><font>深圳</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=2156"><span><font>北京</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=2175"><span><font>上海</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=2196"><span><font>广州</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=2268"><span><font>成都</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=2459"><span><font>中国香港</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=2426"><span><font>昆明</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=33"><span><font>美国</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=2355"><span><font>武汉</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=32"><span><font>韩国</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=59"><span><font>日本</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=2252"><span><font>杭州</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=66"><span><font>印度尼西亚</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=60"><span><font>马来西亚</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=2283"><span><font>福州</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=2314"><span><font>南宁</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=90"><span><font>荷兰</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=2226"><span><font>重庆</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=2320"><span><font>合肥</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=45"><span><font>泰国</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=2225"><span><font>天津</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=2436"><span><font>贵阳</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=2393"><span><font>太原</font></span></a>
                                            </div>
                                        <div class="left"><a href="javascript:;" class="more2">更多</a></div>
                                        <div class="clr"></div>
                </div>
                <div id="searchrow3">
                    <div class="srow2l left"></div>
                    <div class="left items pl9">
                        <a href="position.php?keywords=&lid=0" class="item"><span><font>全部</font></span></a>
                                                    <a class="item active" href="position.php?keywords=&lid=0&tid=87"><span><font>技术类</font></span></a>
                                                    <a class="item" href="position.php?keywords=&lid=0&tid=82"><span><font>产品/项目类</font></span></a>
                                                    <a class="item" href="position.php?keywords=&lid=0&tid=83"><span><font>市场类</font></span></a>
                                                    <a class="item" href="position.php?keywords=&lid=0&tid=81"><span><font>设计类</font></span></a>
                                                    <a class="item" href="position.php?keywords=&lid=0&tid=84"><span><font>职能类</font></span></a>
                                                    <a class="item" href="position.php?keywords=&lid=0&tid=85"><span><font>内容编辑类</font></span></a>
                                                    <a class="item" href="position.php?keywords=&lid=0&tid=86"><span><font>客户服务类</font></span></a>
                                            </div>
                    <div class="clr"></div>
                </div>
            </form>
            <table class="tablelist" cellpadding="0" cellspacing="0">
                <tr class="h">
                    <td class="l" width="374">职位名称</td>
                    <td>职位类别</td>
                    <td>人数</td>
                    <td>地点</td>
                    <td>发布时间</td>
                </tr>
                                <tr class="even">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49165&keywords=&tid=87&lid=0">CSIG16-自动驾驶点云感知算法工程师(北京)</a></td>
                    <td>技术类</td>
                    <td>1</td>
                    <td>北京</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="odd">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49166&keywords=&tid=87&lid=0">31504-高级运营开发工程师</a></td>
                    <td>技术类</td>
                    <td>2</td>
                    <td>深圳</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="even">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49160&keywords=&tid=87&lid=0">CSIG16-底图渲染引擎开发工程师</a></td>
                    <td>技术类</td>
                    <td>1</td>
                    <td>北京</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="odd">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49162&keywords=&tid=87&lid=0">PCG10-QQ浏览器推荐算法工程师</a></td>
                    <td>技术类</td>
                    <td>2</td>
                    <td>深圳</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="even">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49158&keywords=&tid=87&lid=0">CSIG15-语音识别算法研究员</a></td>
                    <td>技术类</td>
                    <td>1</td>
                    <td>北京</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="odd">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49145&keywords=&tid=87&lid=0">15851-游戏后台开发工程师(深圳)</a></td>
                    <td>技术类</td>
                    <td>1</td>
                    <td>深圳</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="even">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49141&keywords=&tid=87&lid=0">PCG19-大数据开发工程师(北京)</a></td>
                    <td>技术类</td>
                    <td>1</td>
                    <td>北京</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="odd">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49136&keywords=&tid=87&lid=0">22989-腾讯云API高级研发工程师</a></td>
                    <td>技术类</td>
                    <td>2</td>
                    <td>深圳</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="even">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49137&keywords=&tid=87&lid=0">22989-腾讯云API开源工程师</a></td>
                    <td>技术类</td>
                    <td>2</td>
                    <td>深圳</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="odd">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49130&keywords=&tid=87&lid=0">WXG03-小程序推荐算法工程师</a></td>
                    <td>技术类</td>
                    <td>1</td>
                    <td>广州</td>
                    <td>2019-04-05</td>
            </table>
        </div>
        <div class="right wcont_s box">
            <div class="blueline"><div class="butcjwt"></div></div>
            <div class="module_faqs square"><a href="faq.php?id=5" title="如何应聘腾讯公司的职位?">如何应聘腾讯公司的职位?</a><a href="faq.php?id=3" title="应届生如何应聘?">应届生如何应聘?</a><a href="faq.php?id=19" title="腾讯应聘流程是什么?">腾讯应聘流程是什么?</a><a href="faq.php?id=20" title="我注册了简历,但为什么没有人联系我?">我注册了简历,但为什么没...</a><a href="faq.php?id=22" title="我忘记密码了,怎么办?">我忘记密码了,怎么办?</a><a href="faq.php?id=23" title="如何进行简历修改?">如何进行简历修改?</a></div>        </div>
        <div class="clr"></div>
    </div>
       <div id="homeDep"></div>        <div id="footer">
        <div>
            <a href="http://www.tencent.com/" class="test" id="test">关于腾讯</a><span>|</span><a href="http://www.qq.com/contract.shtml" target="_blank">服务条款</a><span>|</span><a href="http://hr.tencent.com/" target="_blank">腾讯招聘</a><span>|</span><a href="http://careers.tencent.com/global" target="_blank">Tencent Global Talent</a><span>|</span><a href="http://gongyi.qq.com/" target="_blank">腾讯公益</a><span>|</span><a href="http://service.qq.com/" target="_blank">客服中心</a>
        </div>
        <p>Copyright &copy; 1998 - 2019 Tencent. All Rights Reserved.</p>
    </div>
    <script type="text/javascript" src="//tajs.qq.com/stats?sId=64934792" charset="UTF-8"></script>
</body>
</html>
"""
soup=BeautifulSoup(html,'lxml')

# 1.获取所有的tr标签
trs=soup.select('tr')
# 获取的是一个列表
print(trs)
# for tr in trs:
    # print(type(tr))#返回的是tag对象
    # print(tr)
    # print('='*30)

#2.获取第二个tr标签
# tr=soup.select('tr')[1]
# print(tr)

#3.获取所有class等于even的tr标签
# trs=soup.select('tr.even')
# trs=soup.select('.even')
# for tr in trs:
#     print(tr)

#4.获取所有id等于test,class也等于test的a标签提取出来
#这个使用选择器不好查找

#5.获取所有a标签的href属性
# alist=soup.select('a')
# for a in alist:
#     href=a['href']
#     print(href)

#6.获取所有的职位信息(纯文本)
# trs=soup.select('tr')
# for tr in trs:
#     infos=list(tr.stripped_strings)
#     print(infos)

#BeautifulSoup中使用css选择器
#要使用soup.select('')方法。应该传递一个css选择器的字符串给select方法

5.beautiful拾遗

#  -*-coding:utf8 -*-

from bs4 import BeautifulSoup

html="""

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>职位搜索 | 社会招聘 | Tencent 腾讯招聘</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <!-- Js Css -->
             <link media="screen" href="//cdn.m.tencent.com/hr_static/css/all.css?max_age=86412" type="text/css" rel="stylesheet" />
    <script type="text/javascript" src="//cdn.m.tencent.com/hr_static/js/jquery-1.7.2.min.js"></script>
    <script type="text/javascript" src="//cdn.m.tencent.com/hr_static/js/jquery-ui-1.7.2.custom.min.js"></script>
    <script type="text/javascript" src="//cdn.m.tencent.com/hr_static/js/thickbox.js"></script>
    <link media="screen" href="//cdn.m.tencent.com/hr_static/css/thickbox.css" type="text/css" rel="stylesheet" />
    <script type="text/javascript" src="//cdn.m.tencent.com/hr_static/js/functions.js"></script>
    <script type="text/javascript" src="//cdn.m.tencent.com/hr_static/js/utils.js"></script>
    <script language="javascript" src="//vm.gtimg.cn/tencentvideo/txp/js/txplayer.js" charset="utf-8"></script>
    <script type="text/javascript" src="//cdn.m.tencent.com/hr_static/js/all.js?max_age=86412"></script>    <!-- Js Css -->
    <script>
        var keywords_json = [];
    </script>
</head>

<body>
        <p>
        <!-- 我是注释字符串 -->
        </p>
        <div>我是div的内容</div>
        <div id="header">
        <div class="maxwidth">
            <a href="index.php" class="left" id="logo"><img src="//cdn.m.tencent.com/hr_static/img/logo.png"/></a>
            <div class="right" id="headertr">
                <div class="right pl9" id="topshares">
                    <div class="shares">
                        <span class="left">分享到:</span>
                        <!--<a href="javascript:;" onclick="shareto('qqt','top');" id="qqt" title="分享到腾讯微博">分享到腾讯微博</a>-->
                        <a href="javascript:;" onclick="shareto('qzone','top');" id="qzone" title="分享到QQ空间">分享到QQ空间</a>
                        <!--<a href="javascript:;" onclick="shareto('pengyou','top');" id="pengyou" title="分享到腾讯朋友">分享到腾讯朋友</a>-->
                        <a href="javascript:;"  onclick="shareto('sinat','top');"id="sinat" title="分享到新浪微博">分享到新浪微博</a>
                        <!--<a href="javascript:;"  onclick="shareto('renren','top');"id="renren" title="分享到人人网">分享到人人网</a>-->
                        <!--<a href="javascript:;"  onclick="shareto('kaixin001','top');"id="kaixin" title="分享到开心网">分享到开心网</a>-->
                        <div class="clr"></div>
                    </div>
                    <!--<a href="javascript:;">分享</a>-->
                </div>
                <!--<div class="right pl9">-->
                    <!--<a href="http://t.qq.com/QQjobs" id="tqq" target="_blank">收听腾讯招聘</a>-->
                <!--</div>-->
                <div class="right pr9">
                                                                <a href="login.php" id="header_login_anchor">登录</a><span class="plr9">|</span><a href="reg.php">注册</a>
                                        <span class="plr9">|</span><a href="question.php">反馈建议</a>
                    <span class="plr9">|</span><a href="http://careers.tencent.com/global" target="_blank">Tencent Global Talent</a>
                    <script>
                        var User_Account = "";
                    </script>
                                    </div>
                <div class="clr"></div>
            </div>
            <div class="clr"></div>
        </div>
        <div id="menus">
            <div class="maxwidth">
                <ul id="menu" class="left">
                    <li id="nav1" ><a href="index.php">&nbsp;</a></li>
                    <li id="nav2" class="active" ><a href="social.php">&nbsp;</a></li>
                    <li id="nav3"><a href="about.php">&nbsp;</a></li>
                    <li id="nav4"><a href="workInTencent.php">&nbsp;</a></li>
                </ul>
                <a class="right texti9" target="_blank" id="navxy" href="http://join.qq.com">校园招聘</a>
                <div class="clr"></div>
            </div>
        </div>
    </div>    <div id="sociaheader">
            </div>
    <div id="position" class="maxwidth">
        <a name="a" id="a" href='www.baidu.com'></a>
        <div class="left wcont_b box">
            <div class="blueline"><div class="butzwss"></div></div>
            <form id="searchform" class="buts1">
                <div id="searchrow1">
                    <div id="search1"><input id="search2" name="keywords" t="请输入关键词" value="" class="left"/><input class="left" id="search3" type="submit" value=""/><div class="clr"></div></div>
                    <input type="hidden" name="lid" value="0"/>
                    <input type="hidden" name="tid" value="87"/>
                </div>
                <div id="searchrow2">
                    <div class="srow2l left"></div>
                    <div class="left items pl9 itemnone" id="additems">
                        <a href="position.php?keywords=&tid=87" class="item active"><span><font>全部</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=2218"><span><font>深圳</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=2156"><span><font>北京</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=2175"><span><font>上海</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=2196"><span><font>广州</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=2268"><span><font>成都</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=2459"><span><font>中国香港</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=2426"><span><font>昆明</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=33"><span><font>美国</font></span></a>
                                                    <a class="item" href="position.php?keywords=&tid=87&lid=2355"><span><font>武汉</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=32"><span><font>韩国</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=59"><span><font>日本</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=2252"><span><font>杭州</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=66"><span><font>印度尼西亚</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=60"><span><font>马来西亚</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=2283"><span><font>福州</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=2314"><span><font>南宁</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=90"><span><font>荷兰</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=2226"><span><font>重庆</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=2320"><span><font>合肥</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=45"><span><font>泰国</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=2225"><span><font>天津</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=2436"><span><font>贵阳</font></span></a>
                                                    <a class="item itemhide" href="position.php?keywords=&tid=87&lid=2393"><span><font>太原</font></span></a>
                                            </div>
                                        <div class="left"><a href="javascript:;" class="more2">更多</a></div>
                                        <div class="clr"></div>
                </div>
                <div id="searchrow3">
                    <div class="srow2l left"></div>
                    <div class="left items pl9">
                        <a href="position.php?keywords=&lid=0" class="item"><span><font>全部</font></span></a>
                                                    <a class="item active" href="position.php?keywords=&lid=0&tid=87"><span><font>技术类</font></span></a>
                                                    <a class="item" href="position.php?keywords=&lid=0&tid=82"><span><font>产品/项目类</font></span></a>
                                                    <a class="item" href="position.php?keywords=&lid=0&tid=83"><span><font>市场类</font></span></a>
                                                    <a class="item" href="position.php?keywords=&lid=0&tid=81"><span><font>设计类</font></span></a>
                                                    <a class="item" href="position.php?keywords=&lid=0&tid=84"><span><font>职能类</font></span></a>
                                                    <a class="item" href="position.php?keywords=&lid=0&tid=85"><span><font>内容编辑类</font></span></a>
                                                    <a class="item" href="position.php?keywords=&lid=0&tid=86"><span><font>客户服务类</font></span></a>
                                            </div>
                    <div class="clr"></div>
                </div>
            </form>
            <table class="tablelist" cellpadding="0" cellspacing="0">
                <tr class="h">
                    <td class="l" width="374">职位名称</td>
                    <td>职位类别</td>
                    <td>人数</td>
                    <td>地点</td>
                    <td>发布时间</td>
                </tr>
                                <tr class="even">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49165&keywords=&tid=87&lid=0">CSIG16-自动驾驶点云感知算法工程师(北京)</a></td>
                    <td>技术类</td>
                    <td>1</td>
                    <td>北京</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="odd">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49166&keywords=&tid=87&lid=0">31504-高级运营开发工程师</a></td>
                    <td>技术类</td>
                    <td>2</td>
                    <td>深圳</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="even">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49160&keywords=&tid=87&lid=0">CSIG16-底图渲染引擎开发工程师</a></td>
                    <td>技术类</td>
                    <td>1</td>
                    <td>北京</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="odd">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49162&keywords=&tid=87&lid=0">PCG10-QQ浏览器推荐算法工程师</a></td>
                    <td>技术类</td>
                    <td>2</td>
                    <td>深圳</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="even">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49158&keywords=&tid=87&lid=0">CSIG15-语音识别算法研究员</a></td>
                    <td>技术类</td>
                    <td>1</td>
                    <td>北京</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="odd">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49145&keywords=&tid=87&lid=0">15851-游戏后台开发工程师(深圳)</a></td>
                    <td>技术类</td>
                    <td>1</td>
                    <td>深圳</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="even">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49141&keywords=&tid=87&lid=0">PCG19-大数据开发工程师(北京)</a></td>
                    <td>技术类</td>
                    <td>1</td>
                    <td>北京</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="odd">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49136&keywords=&tid=87&lid=0">22989-腾讯云API高级研发工程师</a></td>
                    <td>技术类</td>
                    <td>2</td>
                    <td>深圳</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="even">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49137&keywords=&tid=87&lid=0">22989-腾讯云API开源工程师</a></td>
                    <td>技术类</td>
                    <td>2</td>
                    <td>深圳</td>
                    <td>2019-04-05</td>
                </tr>
                                <tr class="odd">
                    <td class="l square"><a target="_blank" href="position_detail.php?id=49130&keywords=&tid=87&lid=0">WXG03-小程序推荐算法工程师</a></td>
                    <td>技术类</td>
                    <td>1</td>
                    <td>广州</td>
                    <td>2019-04-05</td>
            </table>
        </div>
        <div class="right wcont_s box">
            <div class="blueline"><div class="butcjwt"></div></div>
            <div class="module_faqs square"><a href="faq.php?id=5" title="如何应聘腾讯公司的职位?">如何应聘腾讯公司的职位?</a><a href="faq.php?id=3" title="应届生如何应聘?">应届生如何应聘?</a><a href="faq.php?id=19" title="腾讯应聘流程是什么?">腾讯应聘流程是什么?</a><a href="faq.php?id=20" title="我注册了简历,但为什么没有人联系我?">我注册了简历,但为什么没...</a><a href="faq.php?id=22" title="我忘记密码了,怎么办?">我忘记密码了,怎么办?</a><a href="faq.php?id=23" title="如何进行简历修改?">如何进行简历修改?</a></div>        </div>
        <div class="clr"></div>
    </div>
       <div id="homeDep"></div>        <div id="footer">
        <div>
            <a href="http://www.tencent.com/" class="test" id="test">关于腾讯</a><span>|</span><a href="http://www.qq.com/contract.shtml" target="_blank">服务条款</a><span>|</span><a href="http://hr.tencent.com/" target="_blank">腾讯招聘</a><span>|</span><a href="http://careers.tencent.com/global" target="_blank">Tencent Global Talent</a><span>|</span><a href="http://gongyi.qq.com/" target="_blank">腾讯公益</a><span>|</span><a href="http://service.qq.com/" target="_blank">客服中心</a>
        </div>
        <p>Copyright &copy; 1998 - 2019 Tencent. All Rights Reserved.</p>
    </div>

    <script type="text/javascript" src="//tajs.qq.com/stats?sId=64934792" charset="UTF-8"></script>
</body>
</html>
"""
soup=BeautifulSoup(html,'lxml')

#Beautiful中4个常用对象
#1.tag
# table=soup.find('table')
# print(type(table))

#2.NavigableString
#是字符串,继承str,当成str即可
# div=soup.find('div')
# print(type(div.string))

#3.Comment
# p=soup.find('p')
#可以拿到p标签下面的注释字符串.但是如果p标签下有多行字符串,比如,换行符,字符串,换行符,这样就获取不到了
# print(p.string)
#可以拿到p标签下所有内容
# print(p.contents)

#4.BeautifulSoup

table=soup.find('table')
# print(table.contents)#返回的是列表
# print(table.children)#返回的是生成器
for i in table.children:
    print(i)

#常见的四种对象:
'''
1.Tag:BeautifulSoup中所有的标签都是Tag类型,并且BeautifulSoup的对象其实本质上也是一个Tag类型,
所以其实一些方法比如find、find_all并不是BeautifulSoup的,而是Tag的
2.NavigableString:继承自python中的str,用起来就跟使用python的str是一样的
3.BeautifulSoup:继承自Tag。用来生成BeautifulSoup树的。对于一些查找方法,比如find、select这些,
其实还是Tag的
4.Comment:这个也没什么好说,就是继承自NavigableString

'''

#contents和children
'''
返回某个标签下的直接子元素,其中也包括字符串。他们两的区别是:contents返回来的是一个列表,
children返回的是一个迭代器
'''

BeautifulSoup库的使用的更多相关文章

  1. Python爬虫小白入门(三)BeautifulSoup库

    # 一.前言 *** 上一篇演示了如何使用requests模块向网站发送http请求,获取到网页的HTML数据.这篇来演示如何使用BeautifulSoup模块来从HTML文本中提取我们想要的数据. ...

  2. BeautifulSoup库children(),descendants()方法的使用

    BeautifulSoup库children(),descendants()方法的使用 示例网站:http://www.pythonscraping.com/pages/page3.html 网站内容 ...

  3. 网络爬虫BeautifulSoup库的使用

    使用BeautifulSoup库提取HTML页面信息 #!/usr/bin/python3 import requests from bs4 import BeautifulSoup url='htt ...

  4. python爬虫学习之使用BeautifulSoup库爬取开奖网站信息-模块化

    实例需求:运用python语言爬取http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html这个开奖网站所有的信息,并且保存为txt文件和excel文件. 实 ...

  5. python下载安装BeautifulSoup库

    python下载安装BeautifulSoup库 1.下载https://www.crummy.com/software/BeautifulSoup/bs4/download/4.5/ 2.解压到解压 ...

  6. 基于BeautifulSoup库的HTML内容的查找

    一.BeautifulSoup库提供了一个检索的参数: <>.find_all(name,attrs,recursive,string,**kwargs),它返回一个列表类型,存储查找的结 ...

  7. BeautifulSoup库

    '''灵活又方便的网页解析库,处理高效,支持多种解析器.利用它不用编写正则表达式即可方便的实现网页信息的提取.''' BeautifulSoup库包含的一些解析库: 解析库 使用方法 优势 劣势 py ...

  8. python BeautifulSoup库的基本使用

    Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree). 它提供简单又常用的导航(navigating),搜索以 ...

  9. python爬虫学习(一):BeautifulSoup库基础及一般元素提取方法

    最近在看爬虫相关的东西,一方面是兴趣,另一方面也是借学习爬虫练习python的使用,推荐一个很好的入门教程:中国大学MOOC的<python网络爬虫与信息提取>,是由北京理工的副教授嵩天老 ...

随机推荐

  1. Mybatis注意点之#与$区别

    动态 SQL 是 mybatis 的强大特性之一,也是它优于其他 ORM 框架的一个重要原因.mybatis 在对 sql 语句进行预编译之前,会对 sql 进行动态解析,解析为一个 BoundSql ...

  2. [原创]基于Zynq Linux环境搭建(三)

    此篇编译Kernel 解压: [#17#17:26:56 FPGADeveloper@ubuntu ~/Zybo_Demo]$tar zxvf *.tar.gz 进入到文件kernel文件夹中,cle ...

  3. 3.RNN推导

    1.基本RNN结构 这几天想入门NLP,所以开始了解RNN以及一系列变体.首先RNN最原始的结构如下图(图是按自己的理解用visio画的,有错麻烦提一下), 首先我们来说明一下各个符号的定义: 各个变 ...

  4. Java基础知识及学习规划【图】

    结构图:

  5. Windows 7 设置,启动,停止本地虚拟WLAN

    以管理员身份运行以下命令 设置承载网络属性 netsh wlan set hostednetwork mode=allow ssid=Burp key= 启动承载网络 netsh wlan start ...

  6. React Component Lifecycle(生命周期)

    生命周期 所谓生命周期,就是一个对象从开始生成到最后消亡所经历的状态,理解生命周期,是合理开发的关键.RN 组件的生命周期整理如下图: 如图,可以把组件生命周期大致分为三个阶段: 第一阶段:是组件第一 ...

  7. [Web]Restful风格的适用场景

    最近一直在兜兜转转Restful的相关内容,准备在原先的项目上构建restful的API. 实践过程很别扭,直到看到这篇文章[A Brief Introduction to REST], 我才终于断定 ...

  8. python底层原理

    有同学问到了一个问题,python中存储变量是通过内存地址来存储,那么python又是如何去判断内存中的地址是什么数据类型的呢.经过查找,找到这篇文章: 原博客地址:http://www.cnblog ...

  9. Hadoop Java API 操作 hdfs--1

    Hadoop文件系统是一个抽象的概念,hdfs仅仅是Hadoop文件系统的其中之一. 就hdfs而言,访问该文件系统有两种方式:(1)利用hdfs自带的命令行方式,此方法类似linux下面的shell ...

  10. MySQL数据库表损坏后的修复方法

    步骤:1.sql语句:check table tabTest; 如果出现的结果说Status是OK,则不用修复,如果有Error2.Linux执行: myisamchk -r -q /var/lib/ ...