BeautifulSoup库的使用
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"> </a></li>
<li id="nav2" class="active" ><a href="social.php"> </a></li>
<li id="nav3"><a href="about.php"> </a></li>
<li id="nav4"><a href="workInTencent.php"> </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 © 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"> </a></li>
<li id="nav2" class="active" ><a href="social.php"> </a></li>
<li id="nav3"><a href="about.php"> </a></li>
<li id="nav4"><a href="workInTencent.php"> </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 © 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"> </a></li>
<li id="nav2" class="active" ><a href="social.php"> </a></li>
<li id="nav3"><a href="about.php"> </a></li>
<li id="nav4"><a href="workInTencent.php"> </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 © 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库的使用的更多相关文章
- Python爬虫小白入门(三)BeautifulSoup库
# 一.前言 *** 上一篇演示了如何使用requests模块向网站发送http请求,获取到网页的HTML数据.这篇来演示如何使用BeautifulSoup模块来从HTML文本中提取我们想要的数据. ...
- BeautifulSoup库children(),descendants()方法的使用
BeautifulSoup库children(),descendants()方法的使用 示例网站:http://www.pythonscraping.com/pages/page3.html 网站内容 ...
- 网络爬虫BeautifulSoup库的使用
使用BeautifulSoup库提取HTML页面信息 #!/usr/bin/python3 import requests from bs4 import BeautifulSoup url='htt ...
- python爬虫学习之使用BeautifulSoup库爬取开奖网站信息-模块化
实例需求:运用python语言爬取http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html这个开奖网站所有的信息,并且保存为txt文件和excel文件. 实 ...
- python下载安装BeautifulSoup库
python下载安装BeautifulSoup库 1.下载https://www.crummy.com/software/BeautifulSoup/bs4/download/4.5/ 2.解压到解压 ...
- 基于BeautifulSoup库的HTML内容的查找
一.BeautifulSoup库提供了一个检索的参数: <>.find_all(name,attrs,recursive,string,**kwargs),它返回一个列表类型,存储查找的结 ...
- BeautifulSoup库
'''灵活又方便的网页解析库,处理高效,支持多种解析器.利用它不用编写正则表达式即可方便的实现网页信息的提取.''' BeautifulSoup库包含的一些解析库: 解析库 使用方法 优势 劣势 py ...
- python BeautifulSoup库的基本使用
Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree). 它提供简单又常用的导航(navigating),搜索以 ...
- python爬虫学习(一):BeautifulSoup库基础及一般元素提取方法
最近在看爬虫相关的东西,一方面是兴趣,另一方面也是借学习爬虫练习python的使用,推荐一个很好的入门教程:中国大学MOOC的<python网络爬虫与信息提取>,是由北京理工的副教授嵩天老 ...
随机推荐
- (二)Knockout 文本与外观绑定
Visible Visible binding会依据绑定的数据来决定相应的DOM元素是否隐藏,hidden或visible. 我们首先在js文件部分定义一个view model,这里我创建的是一个ob ...
- Java Spring Boot VS .NetCore (三)Ioc容器处理
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- [原创]SVN使用
在企业中,SVN环境,由企业已经搭建好,并提供相关技术支持.对于个人,如果想在个人PC上实现版本管理,亦可以实现.安装Visual SVN及其相关工具 如何使用,可见下链接 http://www.cn ...
- js分析 有_道_翻_译 md5
0.参考 1.分析 1.1 输入翻译内容,手动点击“翻译”按钮 1.2 查看提交数据,通过多次提交确认变化量 1.3 CTRL+SHIFT+f 全局搜索 salt 或 sign 定位到三处js代码块, ...
- struts2的java.lang.NoSuchMethodException错误
不久前在学习struts时出现这个错误,在网上搜索了半天,发现答案不一.将其总结如下,以方便大家参考. 1. 你有没有试试看 其它的方法能不能用,要是都是这种情况的话,可能是你的Action类没有继承 ...
- Asia-Tsukuba 2017
A. Secret of Chocolate Poles DP,$f[i][j]$表示高度为$i$,顶层颜色为$j$的方案数. 时间复杂度$O(l)$. #include<cstdio> ...
- Echarts跟随容器自适应大小问题
窗口大小改变市echarts图表常常会溢出,这时候会很难看,于是查看文档和百度下后,有如下解决方案: var myChart = echarts.init(document.getElementByI ...
- __x__(15)0906第三天__超链接
HTML5 中的新属性. 属性 值 描述 charset char_encoding HTML5 中不支持.规定被链接文档的字符集. coords coordinates HTML5 中不支持.规定链 ...
- centos7-- sbt的安装使用
sbt是一款类似于maven的构建工具 安装sbt curl https://bintray.com/sbt/rpm/rpm > bintray-sbt-rpm.repo mv bintray- ...
- 在循环中如何取input的值和增加点击事件
{volist name="dianpu" id="dianpu"} <input style="border: none;" rea ...