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网络爬虫与信息提取>,是由北京理工的副教授嵩天老 ...
随机推荐
- jquery 第四章
1.回顾 节点.append(内容) 节点.prepend(内容) 节点.remove() 节点.attr("属性","值") 节点.css("样式& ...
- 参数ref与out
通常我们向方法中传递的是值,方法获得的是这些值的一个拷贝,然后使用这些拷贝,当方法运行完毕后,这些拷贝将被丢弃,而原来的值不会受到影响. 这种情况是通常的,当然还有另外一种情况,我们向方法传递参数的形 ...
- 【转】Oracle imp 总是不停地重复闪烁
http://blog.itpub.net/7282477/viewspace-1003160/ 在dos下执行: imp username/password buffer=1000000 file= ...
- IdentityServer4 记录
IdentityServer4 文档 https://www.cnblogs.com/edisonchou/p/identityserver4_foundation_and_quickstart_01 ...
- HttpWebRequest简单使用
HttpWebRequest简单使用 摘要 HttpWebRequest类对WebRequest中定义的属性和方法提供支持,也对使用户能够直接与使用HTTP的服务器交互的附加属性和方法提供支持. 创 ...
- xss的一般防护措施(及CreateDefaultBuilder源码)
从上个礼拜开始,公司的安全小组就开始排查公司项目的安全性,首屈一指的就是xss问题,为此我总结了下我的经验. 1.对后台程序的输出数据做html编码处理,前端做简单的替换处理 2.如果业务需要,后台可 ...
- Beta(2/7)
鐵鍋燉腯鱻 项目:小鱼记账 团队成员 项目燃尽图 冲刺情况描述 站立式会议照片 各成员情况 团队成员 学号 姓名 git地址 博客地址 031602240 许郁杨 (组长) https://githu ...
- Anaconda介绍、安装及使用教程
https://www.jianshu.com/p/62f155eb6ac5 Anaconda介绍.安装及使用教程 Python是一种面向对象的解释型计算机程序设计语言,其使用,具有跨平台的特点,可以 ...
- 为什么很多应用都安装在/usr/local目录下?
首先,Linux的官方文档FHS对该目录的说明:http://www.linuxbase.org/betaspecs/fhs/fhs/ch04s09.html The /usr/local hiera ...
- 【C语言程序】法雷数列
对任意给定的一个自然数n,将分母小于等于n的不可约的真分数按升序排列,并且在第一个分数之前加上0/1,在最后一个分数之后加上1/1,这个序列称为n级法雷数列,以Fn表示.如F5为:0/1,1/5, 1 ...