回覆「書籍」便可獲贈Python從入門到進階共10本電子書python
/前言/微信
上一篇文章咱們講述了網頁結構和Xpath表達式語法知識,感興趣的小夥伴能夠戳這篇文章:網頁結構的簡介和Xpath語法的入門教程。咱們瞭解到Xpath表達式最好是經過本身進行網頁分析和針對性的選取惟一性的標籤進行定位,能夠提升提取效率,並且還不容易出錯。app
有了Xpath表達式基礎以後,這篇文章咱們將經過Xpath表達式來進行提取數據,具體教程以下,仍然以以前的網站爲例進行說明,咱們的目標數據是標題、發佈日期、主題、正文內容、點贊數、收藏數、評論數等。具體的教程以下。 框架
/具體實現/less
一、針對標題,在上篇文章中就有說起,其Xpath表達式有多種,任選其一便可,在scrapy shell腳本下進行調試,獲得標題的提取方式,並寫入到爬蟲主體文件中。scrapy
二、接下來是發佈日期的提取,仍然是以交互式的方式實現網頁與源碼之間的交互,以下圖所示。
三、並且標籤「entry-meta-hide-on-mobile」具備全局惟一性,能夠很方便的定位到元素。
四、根據網頁結構,咱們可輕易的寫出發佈日期的Xpath表達式,能夠在scrapy shell中先進行測試,再將選擇器表達式寫入爬蟲文件中,詳情以下圖所示。
這裏有部分雜質信息,須要利用strip()和replace()函數剔除多餘的雜質,還日期一個「清白」。
五、關於文章主題標籤的Xpath表達式,能夠看到其在網頁結構上處於日期的下方,以下圖所示。
所以能夠經過更改一下發布日期的Xpath表達式,便可獲取到文章主題標籤。
六、文章主題標籤處於a標籤下,以下圖所示。
獲取到整個列表以後,利用join函數將數組中的元素以逗號鏈接生成一個新的字符串叫tags,而後寫入Scrapy爬蟲文件中去。
七、對於點贊數,其分析方法同以前一致,找到惟一的一個標籤「vote-post-up」便可定位到數據。
八、細心的小夥伴可能會看到「vote-post-up」屬性並非class標籤中惟一一個屬性,因此一開始的Xpath表達式匹配的內容爲空。
這裏給你們安利一個小技巧,若是標籤中存在多個屬性,且屬性是惟一的時候,能夠利用contains函數進行助攻,其用法是'//span[contains(@class,"vote-post-up"),務必要多加練習,不然容易忘記。根據網頁結構寫出Xpath表達式,調試的過程以下圖所示。
取出的點贊數是個字符串,須要利用int()將其強制轉換爲數字。
未完待續~~~,下一篇文章將繼續分享Xpath表達式數據採集方法。
/小結/
本文基於Xpath理論基礎,主要介紹了Scrapy爬蟲框架中利用Xpath選擇器提取某個網頁中目標數據的方法,爲後面抓取全網數據埋下伏筆,更精彩的操做在下篇文章奉上,但願對你們的學習有幫助。
想學習更多關於Python的知識,能夠參考學習網址:http://pdcfighting.com/,點擊閱讀原文,能夠直達噢~
------------------- End -------------------
往期精彩文章推薦:
歡迎你們點贊,留言,轉發,轉載,感謝你們的相伴與支持
想加入Python學習羣請在後臺回覆【入羣】
萬水千山老是情,點個【在看】行不行
/今日留言主題/
隨便說一兩句吧~~
本文分享自微信公衆號 - Python爬蟲與數據挖掘(crawler_python)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。