IT培訓(xùn)網(wǎng)
IT在線學(xué)習(xí)
在chrome瀏覽器輸入:chrome://extensions/,如圖1所示。
圖1 Chrome的擴(kuò)展程序
在上面的界面中直接將XPath-Helper_v2.0.2.crx拖動(dòng)至該擴(kuò)展程序頁(yè)面,點(diǎn)擊確定即可。如果安裝失敗,彈框提示:無(wú)法從該網(wǎng)站添加應(yīng)用、擴(kuò)展程序和用戶腳本,則打開(kāi)開(kāi)發(fā)者模式,將crx文件后綴修改為rar,并解壓成文件夾,點(diǎn)擊開(kāi)發(fā)者模式中的加載已解壓的擴(kuò)展程序按鈕,選擇解壓后的文件夾,點(diǎn)擊確定,安裝成功。安裝完這個(gè)插件的Chrome瀏覽器見(jiàn)圖2。其中XPath-Helper插件的圖標(biāo)是黑底方框內(nèi)部為白色x。
圖2安裝了擴(kuò)展程序的Chrome
安裝了XPath_Helper后,下面介紹一下XPath_Helper的用法。鼠標(biāo)點(diǎn)擊XPath_Helper的圖標(biāo),然后在Chrome瀏覽器中上面部分就彈出了XPath_Helper界面。這時(shí),用戶可以按住shift,把鼠標(biāo)懸停在想要抓取的HTML頁(yè)面元素上,則在XPath_Helper界面左側(cè)窗口中顯示出這個(gè)HTML頁(yè)面元素帶屬性的XPath絕對(duì)路徑,而右側(cè)窗口顯示出該HTML頁(yè)面元素的內(nèi)容。具體如圖3所示。
圖3 XPath_Helper使用
下面采用XPath_Helper分析一下百度貼吧網(wǎng)站。擊XPath_Helper,獲得網(wǎng)頁(yè)上的各種元素的XPath信息。
首先,獲取lol吧的關(guān)注數(shù)量,按住shift,鼠標(biāo)懸停在關(guān)注數(shù)量上,則XPath_Helper中得到了該HTML元素的XPath路徑:
/html/body[@class='skin_normal']/div[@class='wrap1']/div[@class='wrap2']/div[@class='header']/div[@id='pagelet_frs-header/pagelet/head']/div[@class='head_main']/div[@class='head_content']/div[@class='card_top_wrapclearfixcard_top_theme']/div[@class='card_topclearfix']/div[@class='card_title']/div[@class='card_num']/div[@id='pagelet_forum/pagelet/forum_card_number']/span/span[@class='card_menNum']
這是個(gè)絕對(duì)路徑,從網(wǎng)頁(yè)的根目錄開(kāi)始,一般在編寫(xiě)爬蟲(chóng)程序時(shí),這個(gè)路徑太長(zhǎng),不建議使用,可以用帶有唯一屬性的XPath相對(duì)路徑表示該元素,這時(shí)在XPath_Helper左側(cè)的框中修改XPath絕對(duì)路徑,思路是在Chrome開(kāi)發(fā)工具的Elements中觀察這個(gè)元素對(duì)應(yīng)的HTML源代碼,如果這個(gè)標(biāo)簽帶有類(lèi)(class)屬性,則一般用這個(gè)代表該元素。例如把上述絕對(duì)路徑改為//span[@class='card_menNum'],在XPath_Helper右側(cè)的結(jié)果框中依然得到關(guān)注數(shù):12,913,346,則表明采用的XPath相對(duì)路徑是有效的,在寫(xiě)爬蟲(chóng)代碼時(shí),采用這個(gè)相對(duì)路徑,即可找到該元素。
圖4展示了采用XPath相對(duì)路徑找到lol吧的關(guān)注數(shù)量的結(jié)果頁(yè)面。
圖4 獲取百度lol貼吧的關(guān)注數(shù)量
下面想獲得lol貼吧置頂帖子的標(biāo)題這個(gè)信息,具體見(jiàn)圖5展示出的部分。這時(shí)發(fā)現(xiàn)采用XPath_Helper較難同時(shí)獲得這3個(gè)置頂帖子的XPath路徑,帶了屬性的標(biāo)簽很長(zhǎng),看著有點(diǎn)暈。不要怕,采用Chrome開(kāi)發(fā)工具中的“小箭頭”(即在網(wǎng)頁(yè)中選擇一個(gè)元素并查看它)來(lái)解決類(lèi)似的問(wèn)題。先點(diǎn)起這個(gè)按鈕,然后把鼠標(biāo)懸停到想要查看的元素上,這時(shí)在Elements窗口中這個(gè)元素對(duì)應(yīng)的HTML源碼被高亮了,接著右鍵單擊這個(gè)高亮塊,在彈出菜單中選擇Copy,并在子菜單中選擇CopyXPath。然后把得到的內(nèi)容拷貝到XPath_Helper的左側(cè)窗口中,則右側(cè)窗口中得到了對(duì)應(yīng)的內(nèi)容。這時(shí),XPath_Helper左側(cè)窗口中的內(nèi)容是//*[@id="thread_top_list"]/li[2]/div/div[2]/div/div[1]/a。接下來(lái)采用上面同樣的方法獲得其他置頂帖子標(biāo)題的XPath相對(duì)路徑,并仔細(xì)觀察這幾個(gè)路徑。發(fā)現(xiàn)不同之處在于被反斜杠劃分出的第二部分li標(biāo)簽中括號(hào)中的數(shù)字分別是1、2、3。這時(shí)可知這幾個(gè)置頂帖子是存放在id為thread_top_list這個(gè)大的ul標(biāo)簽中,且被不同的li標(biāo)簽包含著,所以把li標(biāo)簽的中括號(hào)數(shù)字去掉,這時(shí)就能對(duì)應(yīng)上所有的置頂帖子標(biāo)題,具體如圖5所示。
圖5 獲取百度lol貼吧的置頂帖子信息
如果對(duì)Python開(kāi)發(fā)感興趣或者想要深入學(xué)習(xí)的現(xiàn)在可以免費(fèi)領(lǐng)取學(xué)習(xí)大禮包哦(點(diǎn)擊領(lǐng)取80G課程資料 備注:領(lǐng)資料)。
>>本文地址:http://uj2y2uok.com/zhuanye/2020/61673.html
聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
1 您的年齡
2 您的學(xué)歷
3 您更想做哪個(gè)方向的工作?
07月15日Java
咨詢/試聽(tīng)07月15日Python+人工智能
咨詢/試聽(tīng)07月15日Web前端
咨詢/試聽(tīng)07月15日UI設(shè)計(jì)
咨詢/試聽(tīng)07月15日大數(shù)據(jù)
咨詢/試聽(tīng)07月15日Java
咨詢/試聽(tīng)07月15日Python+人工智能
咨詢/試聽(tīng)07月15日Web前端
咨詢/試聽(tīng)07月15日UI設(shè)計(jì)
咨詢/試聽(tīng)07月15日大數(shù)據(jù)
咨詢/試聽(tīng)