
800819103
在線客服,實時響應
qq群
在線客服,實時響應
客服電話
13318873961
爬蟲可以大量的爬取數據,通過整合數據,可以挖掘有價值的信息,常常應用于電商等行業。許多新手也想通過自學,學會爬蟲的編寫,實現數據的爬取。今天精靈代理小編跟大家分享爬取新聞信息的案例,至于爬蟲怎么爬取新聞信息,就跟小編一起去了解一下。
一、爬取目的
主要是爬取網易新聞,包括新聞標題、作者、來源、發布時間、新聞正文。
二、爬取步驟
1.找出請求地址
我們打開163的網站,我們隨意選擇一個分類,這里我選的分類是國內新聞。然后鼠標右鍵點擊查看源代碼,發現源代碼中并沒有頁面正中的新聞列表。這說明此網頁采用的是異步的方式。也就是通過api接口獲取的數據。
那么確認了之后可以使用F12打開谷歌瀏覽器的控制臺,點擊 Network,我們一直往下拉,發現右側出現了:"… special/00804KVA/cm_guonei_03.js? … "之類的地址,點開Response發現正是我們要找的api接口。
可以看到這些接口的地址都有一定的規律:“cm_guonei_03.js”、“cm_guonei_04.js”,那么就很明顯了:
http://temp.163.com/special/00804KVA/cm_guonei_0(*).js
上面的鏈接也就是我們本次抓取所要請求的地址。
接下來只需要用到的python的兩個庫:
2.開始編寫爬蟲
先導入requests、json、BeautifulSoup三個包。requests庫就是用來進行網絡請求的,說白了就是模擬瀏覽器來獲取資源。由于我們采集的是api接口,它的格式為json,所以要用到json庫來解析。BeautifulSoup是用來解析html文檔的,可以很方便的幫我們獲取指定div的內容。
接著我們定義一個獲取指定頁碼內數據的方法:
這樣子就得到每個頁碼對應的內容列表:
之后通過分析數據可知下圖圈出來的則是需要抓取的標題、發布時間以及新聞內容頁面。
既然現在已經獲取到了內容頁的url,那么接下來開始抓取新聞正文。
在抓取正文之前要先分析一下正文的html頁面,找到正文、作者、來源在html文檔中的位置。
我們看到文章來源在文檔中的位置為:id = “ne_article_source” 的 a 標簽。作者位置為:class = “ep-editor” 的 span 標簽。正文位置為:class = “post_text” 的 div 標簽。
下面采集這三個內容的代碼:
到此為止我們所要抓取的所有數據都已經采集了,為了方便直接采取文本的形式來保存。
格式為json字符串,“標題” : [ ‘日期’, ‘url’, ‘來源’, ‘作者’, ‘正文’ ]。
要注意的是目前實現的方式是完全同步的,線性的方式,存在的問題就是采集會非常慢。主要延遲是在網絡IO上,下次可以升級為異步IO,異步采集,有興趣的可以關注下次的文章。
上文比較詳細的介紹了爬蟲怎么爬取新聞信息,通過本次練手,各位應該會對爬蟲有一個入門級的了解。作為一位新手,還是多動手,多實踐,才能學到東西,僅僅是看,學不會。