python爬蟲lxml庫(kù)-xpath基礎(chǔ)操作-demo

from lxml import etree
text = '''
<li class="con_list_item default_list" data-index="1" data-positionid="4383913" data-salary="20k-25k" data-company="人人行(借貸寶)" data-positionname="Java工程師" data-companyid="61921" data-hrid="7134052" data-adword="0">
                                         <div class="list_item_top">
                        <div class="position">
                            <div class="p_top">

                                <a class="position_link"  target="_blank" data-index="1" data-lg-tj-id="8E00" data-lg-tj-no="
                                                                                                0102
                                                                                        " data-lg-tj-cid="4383913" data-lg-tj-abt="dm-csearch-useUserAllInterest|0">
                                    <h3 style="max-width: 180px;">Java工程師</h3>
                                                                                                                                                                                                                            <span class="add">[<em>北京·朝陽(yáng)區(qū)</em>]</span>
                                                                                                                                                                                                        </a>
                                <span class="format-time">2天前發(fā)布</span>
                            </div>
                            <div class="p_bot">
                                <div class="li_b_l">
                                    <span class="money">20k-25k</span>
                                    <!--<i></i>-->經(jīng)驗(yàn)3-5年 / 不限
                                </div>
                            </div>
                        </div>
                        <div class="company">
                            <div class="company_name">
                                <a  target="_blank" data-lg-tj-id="8F00" data-lg-tj-no="
                                                                                                0102
                                                                                        " data-lg-tj-cid="61921" data-lg-tj-abt="dm-csearch-useUserAllInterest|0">人人行(借貸寶)</a><i class="company_mark"><span>該企業(yè)已上傳營(yíng)業(yè)執(zhí)照并通過資質(zhì)驗(yàn)證審核</span></i>
                            </div>
                            <div class="industry">
                                移動(dòng)互聯(lián)網(wǎng),金融 / C輪
                            </div>
                        </div>
                        <div class="com_logo">
                            <a  target="_blank" data-lg-tj-id="8G00" data-lg-tj-no="
                                                                                                0102
                                                                                        " data-lg-tj-cid="61921" data-lg-tj-abt="dm-csearch-useUserAllInterest|0"><img src="http://www.lgstatic.com/thumbnail_120x120/i/image/M00/04/01/CgqKkVbFXXqAPo0fAAATqvTo2-I592.png" alt="人人行(借貸寶)" width="60" height="60"></a>
                        </div>
                    </div>
                    <div class="list_item_bot">
                        <div class="li_b_l">
                                                                                                                                        <span>年底雙薪</span>
                                                                                                                                                <span>節(jié)日禮物</span>
                                                                                                                                                <span>績(jī)效獎(jiǎng)金</span>
                                                                                                                                                <span>崗位晉升</span>
                                                                                                                        </div>
                        <div class="li_b_r">“彈性工作,高并發(fā)系統(tǒng),團(tuán)隊(duì)大牛多,工作氛”</div>
                    </div>
                </li>
<li class="con_list_item default_list" data-index="2" data-positionid="4477797" data-salary="15k-25k" data-company="拉勾網(wǎng)" data-positionname="java開發(fā)工程師" data-companyid="147" data-hrid="2848224" data-adword="0">
                                         <div class="list_item_top">
                        <div class="position">
                            <div class="p_top">

                                <a class="position_link"  target="_blank" data-index="2" data-lg-tj-id="8E00" data-lg-tj-no="
                                                                                                0103
                                                                                        " data-lg-tj-cid="4477797" data-lg-tj-abt="dm-csearch-useUserAllInterest|0">
                                    <h3 style="max-width: 180px;">java開發(fā)工程師</h3>
                                                                                                                                                                                                                            <span class="add">[<em>北京·海淀區(qū)</em>]</span>
                                                                                                                                                                                                        </a>
                                <span class="format-time">3天前發(fā)布</span>
                            </div>
                            <div class="p_bot">
                                <div class="li_b_l">
                                    <span class="money">15k-25k</span>
                                    <!--<i></i>-->經(jīng)驗(yàn)3-5年 / 本科
                                </div>
                            </div>
                        </div>
                        <div class="company">
                            <div class="company_name">
                                <a  target="_blank" data-lg-tj-id="8F00" data-lg-tj-no="
                                                                                                0103
                                                                                        " data-lg-tj-cid="147" data-lg-tj-abt="dm-csearch-useUserAllInterest|0">拉勾網(wǎng)</a><i class="company_mark"><span>該企業(yè)已上傳營(yíng)業(yè)執(zhí)照并通過資質(zhì)驗(yàn)證審核</span></i>
                            </div>
                            <div class="industry">
                                企業(yè)服務(wù),招聘 / D輪及以上
                            </div>
                        </div>
                        <div class="com_logo">
                            <a  target="_blank" data-lg-tj-id="8G00" data-lg-tj-no="
                                                                                                0103
                                                                                        " data-lg-tj-cid="147" data-lg-tj-abt="dm-csearch-useUserAllInterest|0"><img src="http://www.lgstatic.com/thumbnail_120x120/i/image/M00/76/40/Cgp3O1g1TNOAB2yxAAA9bQUyc4g814.png" alt="拉勾網(wǎng)" width="60" height="60"></a>
                        </div>
                    </div>
                    <div class="list_item_bot">
                        <div class="li_b_l">
                                                                                                <span>分布式</span>
                                                                    <span>架構(gòu)</span>
                                                                                    </div>
                        <div class="li_b_r">“技術(shù)挑戰(zhàn),成長(zhǎng)空間”</div>
                    </div>
                </li>
<li class="con_list_item default_list" data-index="3" data-positionid="3155873" data-salary="4k-8k" data-company="小肚皮App" data-positionname="實(shí)習(xí)JAVA/PHP開發(fā)" data-companyid="41030" data-hrid="795835" data-adword="0">
                                         <div class="list_item_top">
                        <div class="position">
                            <div class="p_top">

                                <a class="position_link"  target="_blank" data-index="3" data-lg-tj-id="8E00" data-lg-tj-no="
                                                                                                0104
                                                                                        " data-lg-tj-cid="3155873" data-lg-tj-abt="dm-csearch-useUserAllInterest|0">
                                    <h3 style="max-width: 180px;">實(shí)習(xí)JAVA/PHP開發(fā)</h3>
                                                                                                                                                                        <span class="add">[<em>北京·大望路</em>]</span>
                                                                                                                                                        </a>
                                <span class="format-time">10:13發(fā)布</span>
                            </div>
                            <div class="p_bot">
                                <div class="li_b_l">
                                    <span class="money">4k-8k</span>
                                    <!--<i></i>-->經(jīng)驗(yàn)應(yīng)屆畢業(yè)生 / 本科
                                </div>
                            </div>
                        </div>
                        <div class="company">
                            <div class="company_name">
                                <a  target="_blank" data-lg-tj-id="8F00" data-lg-tj-no="
                                                                                                0104
                                                                                        " data-lg-tj-cid="41030" data-lg-tj-abt="dm-csearch-useUserAllInterest|0">小肚皮App</a><i class="company_mark"><span>該企業(yè)已上傳營(yíng)業(yè)執(zhí)照并通過資質(zhì)驗(yàn)證審核</span></i>
                            </div>
                            <div class="industry">
                                移動(dòng)互聯(lián)網(wǎng) / A輪
                            </div>
                        </div>
                        <div class="com_logo">
                            <a  target="_blank" data-lg-tj-id="8G00" data-lg-tj-no="
                                                                                                0104
                                                                                        " data-lg-tj-cid="41030" data-lg-tj-abt="dm-csearch-useUserAllInterest|0"><img src="http://www.lgstatic.com/thumbnail_120x120/i/image/M00/65/83/CgpFT1mlFSWAJrrnAACWcSWNiu8425.png" alt="小肚皮App" width="60" height="60"></a>
                        </div>
                    </div>
                    <div class="list_item_bot">
                        <div class="li_b_l">
                                                                                                <span>游戲</span>
                                                                    <span>后端開發(fā)</span>
                                                                                    </div>
                        <div class="li_b_r">“轉(zhuǎn)正機(jī)會(huì),逗逼氛圍,美女如云,餐補(bǔ)”</div>
                    </div>
                </li>
'''

公用代碼

htmlElement = etree.HTML(text)

1.獲得所有l(wèi)i標(biāo)簽

#//li表示從根節(jié)點(diǎn)開始所有l(wèi)i標(biāo)簽
 lis = htmlElement.xpath("http://li")
 for li in lis:
     print(etree.tostring(li,encoding="utf-8").decode("utf-8"))

2.獲得第2個(gè)li標(biāo)簽

#[]里面為謂語(yǔ)皮官,即限制條件硝逢,如[2]表示第二個(gè)
 li= htmlElement.xpath("http://li[2]")[0]
 print(etree.tostring(li,encoding="utf-8").decode("utf-8"))

3.獲得第2個(gè)以后的li標(biāo)簽

#[]里面為謂語(yǔ)炼七,即限制條件输拇,如[position()>2]表示查找第二個(gè)以后的li,position()還可以跟<,<=,>,>=
 lis= htmlElement.xpath("http://li[position()>2]")
 for li in lis:
     print(etree.tostring(li,encoding="utf-8").decode("utf-8"))

4.獲得所有class = industry的標(biāo)簽div元素

#[]里面為謂語(yǔ),即限制條件,@后跟屬性,即滿足屬性等于多少的標(biāo)簽嗽冒,
 divs = htmlElement.xpath("http://div[@class = 'industry']")
 for div in divs:
     print(etree.tostring(div,encoding="utf-8").decode("utf-8"))

5.獲得所有class中含有_list的元素li標(biāo)簽

#[]里面為謂語(yǔ),即限制條件补履,@后跟屬性添坊,contains()模糊匹配,只要屬性含有這個(gè)字符串就可以匹配到
 lis = htmlElement.xpath("http://li[contains(@class,'_list')]")
 for li in lis:
     print(etree.tostring(li,encoding="utf-8").decode("utf-8"))

6.獲得a標(biāo)簽的href屬性的文本

#獲得標(biāo)簽屬性值//a/@href
 alist = htmlElement.xpath("http://a/@href")#不能使用//a[@href]這樣找的是含有href屬性的a標(biāo)簽不是href的值
 for a in alist:
     print(a)

7.獲得 class為industry 或者li_b_r的div

#還可以為 and 
 divs = htmlElement.xpath("http://div[@class = 'industry' or @class = 'li_b_r']")
 for div in divs:
     print(etree.tostring(div,encoding="utf-8").decode("utf-8"))

8.獲得所有文本信息

#查找一個(gè)元素下的所有的元素一定在斜杠前加上點(diǎn)箫锤,即.//贬蛙,否則會(huì)自動(dòng)去根節(jié)點(diǎn)下查找所有元素
#使用/text()可以返回標(biāo)簽的值
 lis = htmlElement.xpath("http://li")
 for li in lis:
     position = li.xpath(".//h3/text()")[0]
     salary = li.xpath(".//span[@class = 'money']/text()")[0]
     address = li.xpath(".//span[@class = 'add']/em/text()")[0]
     advantages = li.xpath(".//div[@class ='list_item_bot']/div[@class='li_b_l']/span/text()")
     temp = {
         "positon":position,
         "salary":salary,
         "address":address,
         "advantage":advantages
     }
     print(temp)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末雨女,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子阳准,更是在濱河造成了極大的恐慌氛堕,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件野蝇,死亡現(xiàn)場(chǎng)離奇詭異讼稚,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)绕沈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門锐想,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人乍狐,你說我怎么就攤上這事赠摇。” “怎么了浅蚪?”我有些...
    開封第一講書人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵蝉稳,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我掘鄙,道長(zhǎng),這世上最難降的妖魔是什么嗡髓? 我笑而不...
    開封第一講書人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任操漠,我火速辦了婚禮,結(jié)果婚禮上饿这,老公的妹妹穿的比我還像新娘浊伙。我一直安慰自己,他們只是感情好长捧,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開白布嚣鄙。 她就那樣靜靜地躺著,像睡著了一般串结。 火紅的嫁衣襯著肌膚如雪哑子。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,713評(píng)論 1 312
  • 那天肌割,我揣著相機(jī)與錄音卧蜓,去河邊找鬼。 笑死把敞,一個(gè)胖子當(dāng)著我的面吹牛弥奸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播奋早,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼盛霎,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼赠橙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起愤炸,我...
    開封第一講書人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤期揪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后摇幻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體横侦,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年绰姻,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了枉侧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡狂芋,死狀恐怖榨馁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情帜矾,我是刑警寧澤翼虫,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站屡萤,受9級(jí)特大地震影響珍剑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜死陆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一招拙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧措译,春花似錦别凤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至塌衰,卻和暖如春诉稍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背最疆。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工均唉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人肚菠。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓舔箭,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子层扶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案箫章? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,761評(píng)論 1 92
  • 聲明:本文講解的實(shí)戰(zhàn)內(nèi)容,均僅用于學(xué)習(xí)交流镜会,請(qǐng)勿用于任何商業(yè)用途檬寂! 一、前言 強(qiáng)烈建議:請(qǐng)?jiān)陔娔X的陪同下戳表,閱讀本文...
    Bruce_Szh閱讀 12,725評(píng)論 6 28
  • 20170531 這幾天重新拾起了爬蟲桶至,算起來有將近5個(gè)月不碰python爬蟲了。 對(duì)照著網(wǎng)上的程序和自己以前寫的...
    八神蒼月閱讀 14,172評(píng)論 3 44
  • HTML 5 HTML5概述 因特網(wǎng)上的信息是以網(wǎng)頁(yè)的形式展示給用戶的匾旭,因此網(wǎng)頁(yè)是網(wǎng)絡(luò)信息傳遞的載體镣屹。網(wǎng)頁(yè)文件是用...
    阿啊阿吖丁閱讀 3,908評(píng)論 0 0
  • 姐姐我最后一次警告你如果丫頭死于你手我永遠(yuǎn)不會(huì)原諒你。話音剛落价涝,君少揚(yáng)起長(zhǎng)袖離去只剩下片片落葉飄過女蜈。此時(shí)只見那位女...
    玉蝶靈閱讀 131評(píng)論 0 0