這里以python為例,簡單介紹一下如何通過python網絡爬蟲獲取網站數據,主要分為靜態網頁數據的爬取和動態網頁數據的爬取,實驗環境win10+python3.6+pycharm5.0,主要內容如下:
靜態網頁數據這里的數據都嵌套在網頁源碼中,所以直接requests網頁源碼進行解析就行,下面我簡單介紹一下,這里以爬取糗事百科上的數據為例:
1.首先,打開原網頁,如下,這里假設要爬取的字段包括昵稱、內容、好笑數和評論數:
接著查看網頁源碼,如下,可以看的出來,所有的數據都嵌套在網頁中:
2.然后針對以上網頁結構,我們就可以直接編寫爬蟲代碼,解析網頁并提取出我們需要的數據了,測試代碼如下,非常簡單,主要用到requests+BeautifulSoup組合,其中requests用于獲取網頁源碼,BeautifulSoup用于解析網頁提取數據:
點擊運行這個程序,效果如下,已經成功爬取了到我們需要的數據:
動態網頁數據這里的數據都沒有在網頁源碼中(所以直接請求頁面是獲取不到任何數據的),大部分情況下都是存儲在一個json文件中,只有在網頁更新的時候,才會加載數據,下面我簡單介紹一下這種方式,這里以爬取人人貸上面的數據為例:
1.首先,打開原網頁,如下,這里假設要爬取的數據包括年利率,借款標題,期限,金額和進度:
接著按F12調出開發者工具,依次點擊“Network”->“XHR”,F5刷新頁面,就可以找打動態加載的json文件,如下,也就是我們需要爬取的數據:
2.然后就是根據這個json文件編寫對應代碼解析出我們需要的字段信息,測試代碼如下,也非常簡單,主要用到requests+json組合,其中requests用于請求json文件,json用于解析json文件提取數據:
點擊運行這個程序,效果如下,已經成功爬取到我們需要的數據:
至此,我們就完成了利用python網絡爬蟲來獲取網站數據??偟膩碚f,整個過程非常簡單,python內置了許多網絡爬蟲包和框架(scrapy等),可以快速獲取網站數據,非常適合初學者學習和掌握,只要你有一定的爬蟲基礎,熟悉一下上面的流程和代碼,很快就能掌握的,當然,你也可以使用現成的爬蟲軟件,像八爪魚、后羿等也都可以,網上也有相關教程和資料,非常豐富,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。
感謝您的閱讀,如果喜歡,麻煩點個贊支持一下吧~
首先從一個IT從業人員的角度來闡述Python爬蟲和數據分析的位置。
Python爬蟲嚴格的說并非是一個研究方向,在很多企業中也不會針對性的設定“Python爬蟲工程師”這個崗位。爬蟲,更加偏向于在大數據技術中的一個輔助工具,例如,你是做NLP的,你需要很多文本數據,那么可以用爬蟲去爬取很多新聞媒體網站的文字信息。假如,你是做CV的,你可以利用爬蟲技術去一些圖庫、網站爬取一些圖片數據。
諸如此類,可以看出,爬蟲更加像一款工具,如果從事大數據相關的技術工具,這項技術默認是需要會的。當然,“會”也有深淺之分。
前面說了很多題外話,下面就來解釋一下Python爬蟲和數據分析需要哪些知識儲備?自學順序是怎么樣的?
知識儲備Python爬蟲和數據分析,可以具體的分為如下幾個階段,
編程語言
爬蟲
前端
數據分析
首先是變成語言階段,題目中已經標明了 ,既然是Python爬蟲和數據分析,那么語言就已經被限定了,需要具備Python這門編程語言的基礎。
其次是爬蟲,它更加像一個“大雜燴”,所需要的知識相對零散,但是,在Python中不管多么復雜的事情,都架不住強大的第三方庫。所以,爬蟲方面的知識儲備更多的是偏向于第三方庫的使用,例如,
bs4
requests
另外,在爬蟲過程中較為常用的工具就是正則表達式,這是爬蟲無法避開的。
我們爬蟲一般是針對某個網站進行爬取,因此,需要對前端的一些知識進行了解。當然,這里不需要你像一個專業的前端開發工程師那樣,要深入了解js、php這些。但是,至少要對html、css有一定的認識。
最后,就是數據分析方面。數據分析首先要知道數據庫的使用。常用的數據庫無外乎是關系型和非關系型數據庫,但是,無論是哪一種,我們在接觸數據的過程中都會涉及到增刪改查,因此,要對數據庫或者hive這些有一定的認識。
獲取到數據之后,如何把它發揮到最大價值?這就需要看具體應用場景。例如,你需要對它進行預測,那么,你還需要具備一些機器學習的知識。
學習順序前面已經把需要學習的知識囊括進去了,其實,已經按照需要的順序進行排列了,在這里,再進行總結歸類一下。
Python
正則表達式
bs4
requests
html和css
數據庫
機器學習
這種情況我自己還沒有試過,只是借助爬蟲框架pyspider結合PhantomJS,這樣就可以在python里面嵌入一些js代碼,實現點擊,下拉等操作啦。
如果知識單一的需求,不考慮深度學習的話。大概兩個小時左右,大概的流程是,下載安裝python,15分鐘左右找到爬蟲的教程,15分鐘pip庫,然后就開始復制粘貼修改目標網址和數據存儲路徑。然后開始爬一直到結束。整個過程2小時。
我覺得帶著目的去學習,是最有效的學習方法。
學習python爬蟲的話必備知識點如下:
最首先要學的是基本的python語法知識學習python爬蟲經常用到的幾個內之苦:urllib、http這些用于下載網頁學習正則表達式re、BeautifulSoup(bs4)、Xpath等網頁解析工具之后就可以了解一些簡單的網站爬取,可以從百度開始。了解爬取數據的過程在上一步之后就可以了解一些爬蟲的反爬機制。header,robot,時間間隔,代理ip。隱含字段等等之后還要了解一些特殊的網站爬取,解決登陸問題比如cookie還有動態頁面js模擬等問題學習selenium自動化工具,目的是可以應對異步加載頁面在之后就是爬蟲和數據庫之間的結合,如何將我們爬取的數據進行存儲,Mysql還要學習多線程和異步,這樣可以提高效率還有要了解的是爬蟲的框架如果有較大的數據需求的話,要學習redis分布式第一個爬蟲建議從urllib開始,應該很多人的第一個爬蟲代碼都是從這里開始的。短短的幾行代碼就可以搞定一個看似很難的任務。從這里給大家介紹一下:
urllib庫:這是python的內置庫,可以說爬蟲非常重要的一個部分。這個內之苦可以使用的就是完成向服務器發出請求并且獲得網頁的功能。這里說一下,python2.x和3.x是有一些出入的。
如何用python抓取一個指定的頁面?
首先創建一個urllib2_test01.py,然后輸入下面的代碼:
最簡單的獲取一個url信息代碼只需要4行就可以搞定的,執行寫的python代碼:
會得到下面的內容:
下面是編輯urllib_test03.py的過程
這里知識一個初步的介紹。黑馬程序員的視頻庫里面好像有15分鐘學習爬蟲的視頻,大家可以作為參考。
剛剛寫的代碼,打開之后看的不清楚,又重新更新的了圖片。