小白想學習寫Python爬蟲?請看這份詳細的入門教程+全套視頻資料

隨著互聯網的數據爆炸式增長,而利用Python爬蟲我們可以獲取大量有價值的數據:

1.爬取數據,進行市場調研和商業分析

爬取知乎優質答案,篩選各話題下最優質的內容; 抓取房產網站買賣信息,分析房價變化趨勢、做不同區域的房價分析;爬取招聘網站職位信息,分析各行業人才需求情況及薪資水平。

2.作為機器學習、數據挖掘的原始數據

比如你要做一個推薦系統,那麼你可以去爬取更多維度的數據,做出更好的模型。

3.爬取優質的資源:圖片、文本、視頻

爬取商品的評論以及各種圖片網站,獲得圖片資源以及評論文本數據。

掌握正確的方法,在短時間內做到能夠爬取主流網站的數據,其實非常容易實現。

小白想學習寫Python爬蟲?請看這份詳細的入門教程+全套視頻資料

首先我們來了解爬蟲的基本原理及過程

大部分爬蟲都是按“發送請求——獲得頁面——解析頁面——抽取並儲存內容”這樣的流程來進行,這其實也是模擬了我們使用瀏覽器獲取網頁信息的過程。

簡單來說,我們向服務器發送請求後,會得到返回的頁面,通過解析頁面之後,我們可以抽取我們想要的那部分信息,並存儲在指定的文檔或數據庫中。

在這部分你可以簡單瞭解 HTTP 協議及網頁基礎知識,比如 POSTGET、HTML、CSS、JS,簡單瞭解即可,不需要系統學習。

學習 Python 包並實現基本的爬蟲過程

Python中爬蟲相關的包很多:urllib、requests、bs4、scrapy、pyspider 等,建議你從requests+Xpath 開始,requests 負責連接網站,返回網頁,Xpath 用於解析網頁,便於抽取數據。

如果你用過 BeautifulSoup,會發現 Xpath 要省事不少,一層一層檢查元素代碼的工作,全都省略了。掌握之後,你會發現爬蟲的基本套路都差不多,一般的靜態網站根本不在話下,小豬、豆瓣、糗事百科、騰訊新聞等基本上都可以上手了。

小白想學習寫Python爬蟲?請看這份詳細的入門教程+全套視頻資料

存數據

首先,我們來說存數據,是因為在初期學習的時候,接觸的少,也不需要太過於關注,隨著學習的慢慢深入,我們需要保存大批量的數據的時候,就需要去學習數據庫的相關知識了!

初期,我們抓到需要的內容後,只需要保存到本地,無非保存到文檔、表格(excel)等等幾個方法,這裡大家只需要掌握with語句就基本可以保證需求了。大概是這樣的:

with open(路徑以及文件名,保存模式) as f:f.write(數據)#如果是文本可直接寫入,如果是其他文件,數據為二進制模式更好

當然保存到excel表格或者word文檔需要用到 xlwt庫(excel)、python-docx庫(word),這個在網上很多,大家可以自行去學習。

小白想學習寫Python爬蟲?請看這份詳細的入門教程+全套視頻資料

取數據

說了這麼多,我們來說說主題。怎麼來抓取我們想要的數據呢?我們一步步的來!

一般所謂的取網頁內容,指的是通過Python腳本實現訪問某個URL地址(請求數據),然後獲得其所返回的內容(HTML源碼,Json格式的字符串等)。然後通過解析規則(頁面解析),分析出我們需要的數據並取(內容匹配)出來。

在python中實現爬蟲非常方便,有大量的庫可以滿足我們的需求,比如先用requests庫取一個url(網頁)的源碼

import requests#導入庫url = '你的目標網址'response = requests.get(url) #請求數據print(response.text) #打印出數據的文本內容

這幾行代碼就可以獲得網頁的源代碼,但是有時候這裡面會有亂碼,為什麼呢?

因為中文網站中包含中文,而終端不支持gbk編碼,所以我們在打印時需要把中文從gbk格式轉為終端支持的編碼,一般為utf-8編碼。

所以我們在打印response之前,需要對它進行編碼的指定(我們可以直接指定代碼顯示的編碼格式為網頁本身的編碼格式,比如utf-8,網頁編碼格式一般都在源代碼中的標籤下的charset屬性中指定)。加上一行即可。

response.encode = 'utf-8' #指定編碼格式

至此,我們已經獲取了網頁的源代碼,接下來就是在亂七八糟的源代碼中找到我們需要的內容,這裡就需要用到各種匹配方式了,常用的幾種方式有:正則表達式(re庫),bs4(Beautifulsoup4庫),xpath(lxml庫)!

建議大家從正則開始學習,最後一定要看看xpath,這個在爬蟲框架scrapy中用的很多!

通過各種匹配方式找到我們的內容後(注意:一般匹配出來的是列表),就到了上面所說的存數據的階段了,這就完成了一個簡單的爬蟲!

當然了,在我們具體寫代碼的時候,會發現很多上面沒有說到的內容,比如

  • 獲取源代碼的時候遇到反爬,根本獲取不到數據
  • 有的網站需要登錄後才可以拿到內容
  • 遇到驗證碼
  • 獲取到內容後寫入文件出錯
  • 怎樣來設計循環,獲取大批量的內容甚至整站爬蟲

剩下的我們再來慢慢的研究。

總結

Python爬蟲這種技術,既不需要你係統地精通一門語言,也不需要多麼高深的數據庫技術,高效的姿勢就是從實際的項目中去學習這些零散的知識點,你能保證每次學到的都是最需要的那部分。

最後檸檬為大家準備了一些python的學習教程分享,希望可以幫助到大家。


小白想學習寫Python爬蟲?請看這份詳細的入門教程+全套視頻資料


小白想學習寫Python爬蟲?請看這份詳細的入門教程+全套視頻資料

獲取方式:請大家轉發+關注並私信小編關鍵詞:“資料”即可獲取。


分享到:


相關文章: