通過各種點擊觀察削饵,發(fā)現(xiàn)58同城的URL構(gòu)造挺特殊的署浩。
根據(jù)互聯(lián)網(wǎng)協(xié)議和規(guī)則劲件,一般查詢參數(shù)都直接在cgi后加參數(shù)掸哑,如cgi?key=abc&page=1
這樣的约急。
但是58喜歡趕潮,除了關(guān)鍵詞key
之外苗分,一些重要的查詢參數(shù)(職業(yè)厌蔽、行業(yè)、頁碼等)都在URL的目錄中構(gòu)造俭嘁,而不是作為參數(shù)躺枕。這個技術(shù)我不太懂-_-!服猪,大概是服務(wù)器對URL進行分析再獲取參數(shù)吧供填,這個不重要。
(注:我是用python開發(fā)罢猪,剛?cè)腴T近她,目前正在用BeautifulSoup擴展,所以經(jīng)常提到一些相關(guān)術(shù)語膳帕。另外粘捎,定位方法我建議采用CSS選擇器,語法是通用的危彩。)
招聘搜索頁源碼分析
下面是我將幾乎全部搜索條件都加上的全鏈接:
*http://bj.58.com/haidian/tech/pve_5363_244_pve_5754_1476_pve_5356_6_pve_5357_6/?key=%E6%95%B0%E6%8D%AE&minxinzi=3000_4999&postdate=20151209_20151216¶m6693=8&PGTID=0d303655-0047-792b-50b1-e40ba04c7e85&ClickID=1 *
好的攒磨,根據(jù)這個鏈接,以及各種嘗試出來的判斷汤徽,URL的結(jié)論如下:
- 第一部分:子域名娩缰。
bj.58.com
,其中bj
作為城市范圍的“參數(shù)值”谒府。值得一提的是拼坎,58同城沒有省級分區(qū),全都是針對某個城市完疫。 - 第二部分:目錄參數(shù)泰鸡。以下按目錄固定順序排列:
-
/haidian/
即海淀區(qū),代表了地區(qū)或地點“參數(shù)值”壳鹤,還可以是/wudaokou/
五道口盛龄、/beijingdaxue/
北京大學(xué)等,還可以是/beijingzhoubian/
北京周邊芳誓,都是區(qū)域那一欄所有選項的中文全拼余舶。如果是現(xiàn)實全北京的數(shù)據(jù)的話,這個目錄參數(shù)是被省略的的兆沙。 -
/tech/
即職位類別為"計算機/互聯(lián)網(wǎng)"類欧芽。這一部分有點意思,如果改成/job/
就會不限分類葛圃,顯示所有結(jié)果千扔;如果改成/chengxuyuan/
則會顯示"程序員"的子職業(yè)分類憎妙。也就是說,58不區(qū)分各種職業(yè)的層級關(guān)系曲楚,也不考慮多選——要么全選要么單選厘唾。 -
pve_5363_244_pve_5754_1476_pve_5356_6_pve_5357_6
這個是看起來最復(fù)雜的,但是稍微留意下也好理解龙誊,其實是——“更多”欄的篩選項抚垃,一般有四種參數(shù)在這里顯示,每種之間用下劃線連接趟大,如果沒有選擇的話這里就不顯示其值鹤树。其中pve_$$$$_??
是固定格式,$$$$是4位數(shù)字代表參數(shù)名逊朽,后面的??
是1~4位是不固定的數(shù)字代表參數(shù)值罕伯。- pve_5363:公司行業(yè)代號。后面的244是“計算機/互聯(lián)網(wǎng)行業(yè)”叽讳。合在一起代表“公司行業(yè)為計算機及互聯(lián)網(wǎng)行業(yè)”追他。
- pve_5754:公司性質(zhì)代號。后面的1476代表“私營”企業(yè)岛蚤。
- pve_5356:學(xué)歷要求代號邑狸。后面的6代表“本科”。
- pve_5357:經(jīng)驗要求代號涤妒。后面的6代表“3年-5年”单雾。
-
- 第三部分:查詢參數(shù)。這里就沒有固定順序了届腐。
- params6693:福利待遇铁坎。如果值是
1
,代表五險一金犁苏;6
代表周末雙休硬萍。不可多選! - minixinzi:薪資范圍围详。如
0_999
及3000_4999
等朴乖。
- params6693:福利待遇铁坎。如果值是
頁碼:
頁碼超出搜索結(jié)果的總頁碼時,會顯示省略號助赞。
但是結(jié)果再多买羞,也只能顯示到70頁,和智聯(lián)招聘差不多(到90頁)雹食。
包含招聘結(jié)果的大框架
頁面唯一重要的列表信息畜普,都包括在了這個框架中:
<div id="infolist" class="tablist cleft" tongji_id="ZP_job_list_div_items">
<dl logr="p_1_33416242837515_24319259084094_0_1_ses^composite^0" _pos="1" sortid="503338211" class="">一條招聘信息</dl>
</div>
框架定位關(guān)鍵是<div>
的id="infolist"
,而結(jié)果列表中每一條的定位關(guān)鍵為<dl>
標簽包含logr
屬性群叶,且規(guī)律為logr="p_?_????_ses^composite??"
逐行結(jié)果的代碼解析
每一條信息的源碼如下(量比較大):
<dl logr='p_1_33416242837515_24319259084094_0_1_ses^composite^0' _pos="1" sortid='503338211'>
<dd class="w46">
<i infoid='24319259084094'></i>
<input type="hidden" uid='33416242837515_0_0' name="uid"/>
</dd>
<dt>
<a urlparams='psid=164836665190074319829635832&entinfo=24319259084094_0' target="_blank" class="t" _t='common'>數(shù)據(jù)處理員</a>
<span class="hoverinfobox" style="display: none;">
<div id="arrow">
<em></em>
<span></span>
</div>
<div id="tipsbox" class="tipsbox">
<div class="xboxcontent" class="tipsbox">
<div class="titbar"><h2>山東正元數(shù)字城市建設(shè)有限公司麻城項目</h2></div>
<ul class="zhanshi clearfix">
<li class="mar30">
<span>招聘職位:</span>全職招聘
</li>
<li>
<span>招聘人數(shù):</span>若干 </li>
<li class="mar30">
<span>工作經(jīng)驗:</span>不限 </li>
<li>
<span>學(xué)歷要求:</span>不限
</li>
<!--
<li class="mar30">
<span>工作地點:</span>北京
</li> -->
<li class="mar30">
<span>轉(zhuǎn)正工資:</span>1000-2000元
</li>
</ul>
<p>
有積極的態(tài)度和人際關(guān)系吃挑,能吃苦耐勞钝荡,文化水平高中以上。
</p>
</div>
</div>
</span>
<span tag="bbbindcpc" url='http://bj.58.com/chaoshishangye/24319259084094x.shtml' name="zaixian_33416242837515"></span>
</dt>
<dd class="w271">
<a urlparams='psid=164836665190074319829635832&entinfo=24319259084094_0' target="_blank" class="fl" title="山東正元數(shù)字城市建設(shè)有限公司麻城項目">山東正元數(shù)字城市建設(shè)有限公司麻...</a>
</dd>
<dd class="w96"> 北京 </dd>
<dd class="w68"> 12-13 </dd>
</dl>
其中舶衬,一條信息的確認方式有3中:
-
dl [logr]
或dl [sortid]
或dl [_pos]
埠通,合并定位 input [name="uid"]
-
div class="xboxcontent"
和div class="tipsbox"
合并定位
獲取每條招聘信息的基本內(nèi)容
- 企業(yè)ID:定位在
<i infoid='24319259084094'></i>
- uid:定位在
<input type="hidden" uid='33416242837515_0_0' name="uid"/>
- 職位名稱及職位詳情頁URL:
<a urlparams='psid=164836665190074319829635832&entinfo=24319259084094_0' target="_blank" class="t" _t='common'>數(shù)據(jù)處理員</a>`
需要注意的是,詳情url盡量結(jié)合href
和urlparams
參數(shù)一起構(gòu)造逛犹,不過不放在一起也無所謂端辱。
- 企業(yè)名稱:定位在
<div class="titbar"><h2>山東正元數(shù)字城市建設(shè)有限公司麻城項目</h2></div>
- 招聘職位:查找語法是->
ul[class*=zhanshi] li nth-of-type(1)
或者不用nth-of-type()
語法,而是按文本匹配虽画。 - 招聘人數(shù):查找語法是->
ul[class*=zhanshi] li nth-of-type(2)
或者不用nth-of-type()
語法舞蔽,而是按文本匹配。 - 工作經(jīng)驗:查找語法是->
ul[class*=zhanshi] li nth-of-type(3)
或者不用nth-of-type()
語法狸捕,而是按文本匹配喷鸽。 - 學(xué)歷要求:查找語法是->
ul[class*=zhanshi] li nth-of-type(4)
或者不用nth-of-type()
語法众雷,而是按文本匹配灸拍。 - 轉(zhuǎn)正工資:查找語法是->
ul[class*=zhanshi] li nth-of-type(5)
或者不用nth-of-type()
語法,而是按文本匹配砾省。 - 職位描述:查找語法是->
ul[class*=zhanshi] + p
- 企業(yè)名稱及鏈接:定位在以下代碼中鸡岗。注意企業(yè)名稱才用
title
屬性中的,而不是被閹割的文本處编兄。
<dd class="w271"> <a urlparams='psid=164836665190074319829635832&entinfo=24319259084094_0' target="_blank" class="fl" title="xxxx有限公司xx項目">xxxx有限公司...</a></dd>`
- 工作地點:
<dd class="w96"> 北京 </dd>
- 發(fā)布日期:
<dd class="w68"> 12-13 </dd>
判斷是否為推廣信息
如果一行信息內(nèi)包括這條轩性,那么就是推廣信息:
<a class="tuiguang" title="58同城建議您優(yōu)選選擇精準推廣" rel="nofollow" target="_blank" >精準</a>
通過<a>
標簽的class="tuiguang"
來定位。
如果是正常消息狠鸳,則沒有這個鏈接揣苏,且只顯示文本的“今天”或者是“12-12”這種具體日期。
獲取當(dāng)前頁碼及下一頁鏈接
這一步其實是非常重要的件舵!直接關(guān)系到是否抓瞎卸察。
首先,58的設(shè)置是這樣的:
58最多只顯示70頁信息铅祸,每頁45條坑质。強行打開70頁以上的頁面,或者超過當(dāng)前結(jié)果的總頁數(shù)临梗,都會顯示新信息較少涡扼,我們?yōu)槟扑]以下相關(guān)信息:
。
我們先來看源碼盟庞,然后再處理吃沪。
<div class="pagerout">
<div class="pager" tongji_id="ZP_job_list_div_next">
<a class="prv" href="/job/pn7/?key=%E6%95%B0%E6%8D%AE&cmcskey=%E6%95%B0%E6%8D%AE&final=1&specialtype=gls&canclequery=isbiz%3D0">
<span>上一頁</span ></a>
<a href="/job/?key=%E6%95%B0%E6%8D%AE&cmcskey=%E6%95%B0%E6%8D%AE&final=1&specialtype=gls&canclequery=isbiz%3D0">
<span>1</span></a>
<a href="/job/pn2/?key=%E6%95%B0%E6%8D%AE&cmcskey=%E6%95%B0%E6%8D%AE&final=1&specialtype=gls&canclequery=isbiz%3D0">
<span>2</span></a>
<a href="/job/pn3/?key=%E6%95%B0%E6%8D%AE&cmcskey=%E6%95%B0%E6%8D%AE&final=1&specialtype=gls&canclequery=isbiz%3D0">
<span>3</span></a>
...
<a href="/job/pn4/?key=%E6%95%B0%E6%8D%AE&cmcskey=%E6%95%B0%E6%8D%AE&final=1&specialtype=gls&canclequery=isbiz%3D0">
<span>4</span></a>
<a href="/job/pn5/?key=%E6%95%B0%E6%8D%AE&cmcskey=%E6%95%B0%E6%8D%AE&final=1&specialtype=gls&canclequery=isbiz%3D0">
<span>5</span></a>
<a href="/job/pn6/?key=%E6%95%B0%E6%8D%AE&cmcskey=%E6%95%B0%E6%8D%AE&final=1&specialtype=gls&canclequery=isbiz%3D0">
<span>6</span></a>
<a href="/job/pn7/?key=%E6%95%B0%E6%8D%AE&cmcskey=%E6%95%B0%E6%8D%AE&final=1&specialtype=gls&canclequery=isbiz%3D0">
<span>7</span></a>
<strong><span>8</span></strong>
<a href="/job/pn9/?key=%E6%95%B0%E6%8D%AE&cmcskey=%E6%95%B0%E6%8D%AE&final=1&specialtype=gls&canclequery=isbiz%3D0">
<span>9</span></a>
<a href="/job/pn10/?key=%E6%95%B0%E6%8D%AE&cmcskey=%E6%95%B0%E6%8D%AE&final=1&specialtype=gls&canclequery=isbiz%3D0">
<span>10</span></a>
<a href="/job/pn11/?key=%E6%95%B0%E6%8D%AE&cmcskey=%E6%95%B0%E6%8D%AE&final=1&specialtype=gls&canclequery=isbiz%3D0">
<span>11</span></a>
<a href="/job/pn12/?key=%E6%95%B0%E6%8D%AE&cmcskey=%E6%95%B0%E6%8D%AE&final=1&specialtype=gls&canclequery=isbiz%3D0">
<span>12</span></a>
<a class="next" href="/job/pn9/?key=%E6%95%B0%E6%8D%AE&cmcskey=%E6%95%B0%E6%8D%AE&final=1&specialtype=gls&canclequery=isbiz%3D0">
<span>下一頁</span></a>
<a href="/job/?key=%E6%95%B0%E6%8D%AE&cmcskey=%E6%95%B0%E6%8D%AE&final=1&specialtype=gls&canclequery=isbiz%3D0" class="recently">
<span>最新信息</span></a>
</div>
</div>
從上面我們可以這樣得到些信息:
- 上一頁鏈接:
div[class="pagerout"] a[class="prv"]
,獲取其href
屬性值就好了什猖。如果沒有票彪,表示正在第一頁萎津。
- 下一頁鏈接:
div[class="pagerout"] a[class="next"]
,獲取其href
屬性值就好了抹镊。如果沒有锉屈,表示正在最后一頁。 - 當(dāng)前頁碼:
div[class="pagerout"] div[class="pager"] strong
垮耳,當(dāng)前頁是不帶鏈接的颈渊,所以要這樣獲取。
判斷搜索結(jié)果是否讀完
通過測試發(fā)現(xiàn)终佛,根據(jù)結(jié)果數(shù)量的不同俊嗽,除了正常外匯產(chǎn)生以下結(jié)果:
- 顯示
新信息較少,我們?yōu)槟扑]以下相關(guān)信息:
一般是因為超過了應(yīng)有的頁碼了铃彰。這樣的信息通過源碼找到<dt class="shortMsg">新信息較少绍豁,我們?yōu)槟扑]以下相關(guān)信息:</dt>
就可以了。 - 顯示
很抱歉牙捉,沒有找到符合已選條件的信息竹揍。\n建議您:
,這是因為搜索條件太苛刻沒有符合條件的邪铲。這樣的芬位,通過源碼找到:
<i class="ico report"></i><p>很抱歉,沒有找到符合已選條件的信息带到。<br />建議您:</p>
招聘詳細頁源碼分析
這個頁面比較簡單昧碉,除了企業(yè)聯(lián)系方式是動態(tài)加載的圖片外都比較好定位抓取。不過聯(lián)系方式也對我沒什么太大用就不費那功夫了揽惹。
精簡招聘信息
是被包含在頭文件中用來給搜索引擎搜索用的被饿,所以是精華中的精華哈哈。如下:
<meta name="description" content="[最新招聘信息]誠聘誠聘數(shù)據(jù)分析師5000+1人,工作地點位于北京海淀中關(guān)村,公司規(guī)模100-499人,薪資待遇5000-8000元,工作經(jīng)驗1-2年,學(xué)歷要求大專,招聘崗位職責(zé): 建立公司數(shù)據(jù)分析的系統(tǒng)搪搏,組織數(shù)據(jù)分析報表的整合和規(guī)范狭握、優(yōu)化; 建立公司數(shù)據(jù)管理慕嚷、查詢的各項規(guī)章制度哥牍; 建立公司每日、周喝检、月嗅辣、季、年度數(shù)據(jù)分析報表模板挠说; 研究數(shù)據(jù)分析的方法澡谭,做到報表制作, 100)" />
只要通過<meta name="description"
定位,獲取其content
屬性值`就好了。
獲取招聘基本信息
所有的信息都包含在了<div class="wb-main">...</div>
框架中蛙奖。能夠找到的信息如下:
- 職位名稱:
- 更新時間:
- 瀏覽人數(shù)和投遞人數(shù):這個略過潘酗,沒什么用。
- 企業(yè)名稱及鏈接:都在
<a class="companyName" >
雁仲,直接獲取href
就行了仔夺。 - 營業(yè)執(zhí)照是否已經(jīng)過驗證:
<div class="vip-yan fl"><span title="營業(yè)執(zhí)照已驗證" class="licIcon"></span>營業(yè)執(zhí)照已認證</div>
。找到<div class="vip-yan fl">
就好了攒砖。 - 所在行業(yè)缸兔、企業(yè)性質(zhì)、企業(yè)規(guī)模和登記時間都在這里了:
<div class="compMsg clearfix">
<ul>
<li>
<span>行業(yè):</span>
<a target="_blank" >廣告/創(chuàng)意</a>
</li>
<li>
<span>性質(zhì): </span>私營
</li>
<li class="scale">
<span>規(guī)模: </span>100-499人
</li>
<li class="joinday" style="display: none;">
<span>入駐時長:</span>174天
</li>
</ul>
</div>
寫累了吹艇,直接上BeautifulSoup格式的css選擇器的查找語法惰蜜,分別為:
所在行業(yè) =div[class*=compMsg] ul li a[href]
找到,
企業(yè)性質(zhì) = div[class*=compMsg] ul li nth-of-type(2)
,
企業(yè)規(guī)模 = div[class*=compMsg] ul li nth-of-type(3)
或者li[class="scale"]
,
入駐時間 = div[class*=compMsg] ul li nth-of-type(4)
或li[class="joinday"]
受神。
獲取聯(lián)系信息
都包含在這個div中:
<div class="contact mt25" id="lianxi" tongji_id="ZP_job_detail_div_contact">...</div>
然后可以找到這些信息:
- 聯(lián)系人:
<span class="conTip">王經(jīng)理 <span>(聯(lián)系我時請說明是在58同城上看到的)</span></span>
抛猖,定位方法:div[class="conTip"]
。
- 工作地點:源碼有點長鼻听,定位方法:只能用文字匹配了财著,找到
<dt>工作地址:</dt>
和<span class="area">
這2個標簽,它們
中間的標簽就是地址精算。 - 衛(wèi)星定位:其實也不用費勁瓢宦,直接找到
a[class="map"]
,獲取其href
然后用增則表達式匹配2個116.337795
這種數(shù)字灰羽,就得到精確坐標了。源碼如下:
<a class="map" href="javascript:setbg('誠聘數(shù)據(jù)分析師',430,240,'http://qy.58.com/mapdetail.html?lat=116.337795%2C39.977523&name=%E5%B7%A5%E4%BD%9C%E5%9C%B0%E7%82%B9');"><i></i>查看地圖</a>
獲取企業(yè)介紹
企業(yè)信息都包含在這里面:
<div class="compIntro" id="gongsi">...</div>
定位方式為:直接div[class="compIntro"]
或#gongsi
獲取所有文字內(nèi)容就是企業(yè)介紹了鱼辙。
企業(yè)主頁源碼分析
58還真是方便廉嚼,再牛的企業(yè)都是一模一樣的簡單網(wǎng)頁。不過還好倒戏,這也方便獲取數(shù)據(jù)了怠噪。
這個頁面極其簡單,但是有一點需要注意杜跷,數(shù)據(jù)是用表格動態(tài)呈現(xiàn)的傍念,每種信息的位置并不固定,是根據(jù)企業(yè)有沒有這個信息才顯示出來的葛闷。所以在信息定位上憋槐,盡量避免用序號,只能用中文匹配了淑趾。阳仔。需要獲取的數(shù)據(jù)如下:
- 衛(wèi)星定位:在頭文件中,如
<meta name="location" content="province=北京;city=北京; coord=116.404,39.915">
扣泊。找到<meta name="location" />
獲取coord
屬性值就好了近范。
- 企業(yè)名稱及ID:
div[class="compT"] a[href]
就可以找到企業(yè)名稱嘶摊,在href
屬性中的是/ID/
這樣的格式,去掉/
就好了评矩。 - 企業(yè)資質(zhì):最好在
div[class="basicMsg"] tr
中用文字匹配叶堆。 - 企業(yè)性質(zhì):最好在
div[class="basicMsg"] tr
中用文字匹配。 - 企業(yè)行業(yè):最好在
div[class="basicMsg"] tr
中用文字匹配斥杜。 - 企業(yè)規(guī)模:最好在
div[class="basicMsg"] tr
中用文字匹配蹂空。 - 聯(lián)系人: 最好在
div[class="basicMsg"] tr
中用文字匹配。 - 聯(lián)系電話:用文字匹配或
[class="telNum"] img
果录,注意上枕,聯(lián)系電話都是圖片格式的,而且可以不止一個H鹾恪(省事的話就別下載圖片了辨萍,保存鏈接就好了,因為圖片來源明顯不是靜態(tài)圖片而是服務(wù)器動態(tài)生成的返弹。) - 企業(yè)網(wǎng)址(自己的):最好在
div[class="basicMsg"] tr a
中或用文字匹配锈玉。 - 企業(yè)郵箱:和電話一樣,用文字匹配或
[class="telNum"] img
來找圖片义起。 - 公司地址:最好在
div[class="basicMsg"] tr
中用文字匹配拉背。
企業(yè)信用檔案頁面URL及源碼分析
這個頁面不知道入口在哪里?偶然看到的默终,然后心里大呼——哇塞椅棺!哈哈
雖然找不到入口或者查詢頁面,但是發(fā)現(xiàn)其實看懂URL就很簡單了齐蔽,必要格式如下:
http://credit.vip.58.com/usercredit?userId=企業(yè)ID
那么這時候剛才獲取的企業(yè)ID就起作用了两疚。手工輸入了一下,ID對的話每家企業(yè)都能出來含滴。
建立了檔案的企業(yè)——會顯示巨詳細的信息诱渤!連法人代表、注冊資本谈况、詳細地址全都有勺美。
沒建立檔案的企業(yè)——也會顯示頁面,但信息處全都是空白碑韵。
下面就簡單分析下基本信息的獲取赡茸。
獲取企業(yè)營業(yè)執(zhí)照信息
表格基本上是固定位置的,因為大家營業(yè)執(zhí)照都一樣嘛哈哈~
首先獲取信息框架:div[class="zzxx_ta"] table
泼诱,然后再到這個框架里操作坛掠,就簡單多了。
下面是信息定位分析:
- 公司名稱:
td[class="tdbg"] + td
的第1項或span[class="headTitle"]
- 注冊號:
td[class="tdbg"] + td
的第2項 - 經(jīng)營地址:
td[class="tdbg"] + td
的第3項 - 注冊資本:
td[class="tdbg"] + td
的第4項 - 成立日期:
td[class="tdbg"] + td
的第5項 - 法定代表人:
td[class="tdbg"] + td
第6項 - 登記機關(guān):
td[class="tdbg"] + td
的第7項 - 企業(yè)類型:
td[class="tdbg"] + td
的第8項 - 營業(yè)期限:
td[class="tdbg"] + td
的第9項 - 核準日期:
td[class="tdbg"] + td
的第10項 - 登記狀態(tài):
td[class="tdbg"] + td
的第11項 - 在營(開業(yè))企業(yè):
td[class="tdbg"] + td
的第12項 - 經(jīng)營范圍:
td[class="tdbg"] + td
的第13項
獲取企業(yè)其他信息
- 企業(yè)簡介:
div[class="briefIntro"]
- 企業(yè)圖片:
div[class="albumBox"] img
- 企業(yè)抽查檢查信息:
div[class="zzxx_ta"] nth-of-type(1) tr
,如果有記錄則顯示屉栓,無記錄則只顯示一條“無xx信息”舷蒲。可以適當(dāng)排除友多。 - 企業(yè)經(jīng)營異常信息:
div[class="zzxx_ta"] nth-of-type(2) tr
牲平,如果有記錄則顯示,無記錄則只顯示一條“無xx信息”域滥∽菔粒可以適當(dāng)排除。 - 企業(yè)行政處罰信息:
div[class="zzxx_ta"] nth-of-type(3) tr
启绰,如果有記錄則顯示昂儒,無記錄則只顯示一條“無xx信息”∥桑可以適當(dāng)排除渊跋。 - 企業(yè)嚴重違法信息:
div[class="zzxx_ta"] nth-of-type(4) tr
,如果有記錄則顯示着倾,無記錄則只顯示一條“無xx信息”拾酝。可以適當(dāng)排除卡者。