某新聞網站的爬取


某網站新聞抓取

我一直是比較喜歡看新聞類的東西,喜歡了解前沿動態,正好學習了一些爬蟲相關的知識,於是對某網站進行抓取,每天獲取新聞了解世界科技最新動態

  • 首先我們進行數據的准備

  • 我發現他的標題都在一個返回的一串非標准html中,不是json,如圖所示

  • 所以我們請求的首地址就是這一個地址,非原網址地址

  • 得到數據后我們直接使用re模塊處理,findall提取標題和下一個請求的href

  • 因為提取出來是很多個數據的列表,所以我們遍歷列表來獲取新聞頁面的具體信息

  • 在此之前我們需要先創建一個文件夾,用來保存獲取到的新聞信息(注意,必須使用標准格式寫法,否則會出錯)

  • 爬取詳情頁的數據依然使用re模塊獲取所有的新聞信息

  • 如圖所示,我們注意到所有的新聞信息均在一個< p >標簽下,所以使用re.findall來獲取

  • 但是有個問題是我們獲取到的數據在一個列表中,所以我們需要轉化為一個字符串,每個< p >標簽之間加上換行

  • 最后就是數據的后期美化,因為里面夾雜了很多html的標簽,所以我們需要替換掉

  • 有一個特別需要注意的就是\u3000這個,這是一個是全角的空白符,但是我看了下網上的替換方式均有誤,網上的寫法 str.replace(u'\xa0', u' ')

  • 我測試后發現這個寫法是有錯誤的,我們只需要進行字符轉義即可 new_body = new_body.replace("\u3000", '')

  • 然后就是我們的文件保存

  • 文件的名字在之前的new_title中,但是我們還需要構造一個索引,所以我們定義一個num去取標題索引,傳入標題和新聞內容,每次所以加+1

  • 保存文件代碼

  • 最后,其實我們可以使用xpath寫法,這樣就可以省去繁瑣的字符替換等等,我為了復習re所以選擇了這種寫法,也不想改版本了,其他新聞可以修改后面的itemCount=10值爬取所有的新聞,鑒於服務器的負載,我就不做了,有願意的可以自行嘗試

  • 附上一張最后的成果圖

  • 此為本人原創所有,如有轉載,附上原文鏈接即可,如有其他需要發電子郵件給我也可ajin_w@163.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM