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