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. (二)Knockout 文本与外观绑定

    Visible Visible binding会依据绑定的数据来决定相应的DOM元素是否隐藏,hidden或visible. 我们首先在js文件部分定义一个view model,这里我创建的是一个ob ...

  2. Java Spring Boot VS .NetCore (三)Ioc容器处理

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  3. [原创]SVN使用

    在企业中,SVN环境,由企业已经搭建好,并提供相关技术支持.对于个人,如果想在个人PC上实现版本管理,亦可以实现.安装Visual SVN及其相关工具 如何使用,可见下链接 http://www.cn ...

  4. js分析 有_道_翻_译 md5

    0.参考 1.分析 1.1 输入翻译内容,手动点击“翻译”按钮 1.2 查看提交数据,通过多次提交确认变化量 1.3 CTRL+SHIFT+f 全局搜索 salt 或 sign 定位到三处js代码块, ...

  5. struts2的java.lang.NoSuchMethodException错误

    不久前在学习struts时出现这个错误,在网上搜索了半天,发现答案不一.将其总结如下,以方便大家参考. 1. 你有没有试试看 其它的方法能不能用,要是都是这种情况的话,可能是你的Action类没有继承 ...

  6. Asia-Tsukuba 2017

    A. Secret of Chocolate Poles DP,$f[i][j]$表示高度为$i$,顶层颜色为$j$的方案数. 时间复杂度$O(l)$. #include<cstdio> ...

  7. Echarts跟随容器自适应大小问题

    窗口大小改变市echarts图表常常会溢出,这时候会很难看,于是查看文档和百度下后,有如下解决方案: var myChart = echarts.init(document.getElementByI ...

  8. __x__(15)0906第三天__超链接

    HTML5 中的新属性. 属性 值 描述 charset char_encoding HTML5 中不支持.规定被链接文档的字符集. coords coordinates HTML5 中不支持.规定链 ...

  9. centos7-- sbt的安装使用

    sbt是一款类似于maven的构建工具 安装sbt curl https://bintray.com/sbt/rpm/rpm > bintray-sbt-rpm.repo mv bintray- ...

  10. 在循环中如何取input的值和增加点击事件

    {volist name="dianpu" id="dianpu"} <input style="border: none;" rea ...