前一陣子我們介紹了如何啟動Scrapy項目以及關于Scrapy爬蟲的一些小技巧介紹,沒來得及上車的小伙伴可以戳這些文章:
成都創新互聯主營南京網站建設的網絡公司,主營網站建設方案,成都app軟件開發公司,南京h5小程序設計搭建,南京網站營銷推廣歡迎南京等地區企業咨詢
手把手教你如何新建scrapy爬蟲框架的第一個項目(上)
手把手教你如何新建scrapy爬蟲框架的第一個項目(下)
關于Scrapy爬蟲項目運行和調試的小技巧(上篇)
關于Scrapy爬蟲項目運行和調試的小技巧(下篇)
今天我們將介紹在Scrapy中如何利用Xpath選擇器從HTML中提取目標信息。在Scrapy中,其提供了兩種數據提取的方式,一種是Xpath選擇器,一種是CSS選擇器,這一講我們先聚焦Xpath選擇器,仍然是以伯樂在線網為示例網站。
1、?打開網站,然后隨機選擇任意一篇文章進行查看,如下圖所示。
我們需要提取的信息主要有標題、日期、主題、評論數、正文等等。
2、接下來我們就可以開始寫代碼了,基礎代碼如下圖所示,需要注意的是start_urls參數值改為了具體的URL,其他的代碼未發生改變。
3、回到原始網頁,按下鍵盤的快捷鍵F12或者在網頁上點擊鼠標右鍵,然后選擇“檢查(N)”彈出網頁的調試界面,如下圖所示。
4、點擊下圖中紅色框框的小圖標,可以實現網頁數據和源碼之間的交互,可以很方便的幫助我們定位標簽。
5、如下圖所示,當我們選擇上圖中的小圖標之后,再選擇網頁上的標題,爾后網頁源碼會自動跳轉到我們定位的部分,可以看到標題在
6、爾后我們就可以根據上圖中的網頁層次結構寫出標題的Xpath表達式,這里先提供一種比較笨的方法,從頭到尾進行羅列的寫,“/html/body/div[1]/div[3]/div[1]/div[1]/h2”,有沒有發現灰常的辛苦,像這種大標題信息還比較好提取一些,若是碰到犄角旮旯的信息,就比較難寫表達式了,而且這種方式容易出錯,效率還低。不過小伙伴們不用灰心,瀏覽器給我們提供了一個便捷的方式,讓我們可以直接復制Xpath表達式。在標題處或者目標信息處右鍵,然后選擇“Copy”,再選擇“Copy Xpath”即可進行復制該標簽的Xpath表達式,具體過程如下圖所示。
可以看到復制的Xpath表達式為“//*[@id="post-113659"]/div[1]/h2”,其中id="post-113659"是屬于這篇文章的一個標識,如下圖所示。
通過該標識我們就可以很快的定位到標簽,其與我們用笨方法手動寫出來的Xpath表達式有時候并不是一致的。下面將兩個Xpath表達式所匹配的內容分別進行輸出。
7、將Xpath表達式寫入Scrapy爬蟲主體文件中,爾后Debug我們之前定義的main.py文件,將會得到下圖的輸出??梢钥吹絪elector1和selector2中的數據即是網頁上的內容,而且內容是一致的。
之后點擊停止Debug模式,便可以退出Debug模式。
8、從上圖中我們可以看到選擇器將標簽
也都取出來了,而我們想要取的內容僅僅是標簽內部的數據,此時只需要使用在Xpath表達式后邊加入text()函數,便可以將其中的數據進行取出。
通過這篇文章,我們可以了解到盡管我們自己寫出的Xpath表達式和瀏覽器給我們返回的Xpath表達式在寫法上并不一致,但是程序運行之后,其返回的數據內容是一致的。換句話說,關于某個目標數據的Xpath表達式并不是唯一的,只要符合Xpath表達式語法,即便是寫的很短,也是沒問題的,你開心就好。此外在Scrapy爬蟲框架中,text()函數常常與Xpath表達式運用在一塊,用于提取節點中的數據內容。
文章標題:在Scrapy中如何利用Xpath選擇器從HTML中提取目標信息(兩種方式)
URL鏈接:http://vcdvsql.cn/article20/pepijo.html
成都網站建設公司_創新互聯,為您提供做網站、商城網站、App設計、移動網站建設、定制網站、品牌網站設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯