用Python爬网页需要了解什么背景知识
在知乎上有一位同學提出的問題:用Python爬網頁需要了解什么背景知識,恰好我對爬蟲有所了解,所以昨天晚上做了回答,今天放到公眾號上面希望對大家有所幫助,如有幫助歡迎轉發。
文中涉及到一些教程鏈接在本篇文章無法打開,可以點擊閱讀原文查看我在知乎上的原回答,也歡迎大家給我的回答點贊。
要學會使用Python爬取網頁信息無外乎以下幾點內容:
1、要會Python
2、知道網頁信息如何呈現
3、了解網頁信息如何產生
4、學會如何提取網頁信息
第一步Python是工具,所以你必須熟練掌握它,要掌握到什么程度呢?如果你只想寫一寫簡單的爬蟲,不要炫技不考慮爬蟲效率,你只需要掌握:
-
數據類型和變量
-
字符串和編碼
-
使用list和tuple
-
條件判斷、循環
-
使用dict和set
你甚至不需要掌握函數、異步、多線程、多進程,當然如果想要提高自己小爬蟲的爬蟲效率,提高數據的精確性,那么記住最好的方式是去系統的學習一遍Python,去哪兒學習?Python教程
假設你已經熟悉了最基礎的Python知識,那么進入第二步:知道網頁信息如何呈現?你首先要知道所需要抓取的數據是怎樣的呈現的,就像是你想要學做一幅畫,在開始之前你要知道這幅畫是用什么畫出來的,鉛筆還是水彩筆...等等,可能種類是多樣的,但是放到網頁信息來說這兒只有兩種呈現方式:
1、HTML (HTML 簡介)
2、JSON ?(JSON 簡介)
HTML是用來描述網頁的一種語言
JSON是一種輕量級的數據交換格式
假設你現在知道了數據是由HTML和JSON呈現出來的,那么我們緊接著第三步:數據怎么來?數據當然是從服務器反饋給你的,為什么要反饋給你?因為你發出了請求。
“Hi~ ,服務器我要這個資源”
“正在傳輸中...”
“已經收到HTML或者JSON格式的數據”
這是什么請求?要搞清楚這一點你需要了解一下http的基礎知識,更加精確來說你需要去了解GET和POST是什么,區別是什么。也許你可以看看這個:淺談HTTP中Get與Post的區別 - hyddd - 博客園
很高興你使用的是Python,那么你只需要去掌握好快速上手 - Requests 2.10.0 文檔,requests可以幫你模擬發出GET和POST請求,這真是太棒了。
飯菜已經備好,兩菜一湯美味佳肴,下面就是好好享受了。現在我們已經拿到了數據,我們需要在這些錯亂的數據中提取我們需要的數據,這時候我們有兩個選擇。
第一招:萬能鑰匙
Python正則表達式指南?,再大再亂的內容,哪怕是大海撈針,只要告訴我這個針的樣子我都能從茫茫大海中撈出來,強大的正則表達式是你提取數據的不二之選。
第二招:笑里藏刀
Beautiful Soup 4.2.0 文檔,或許我們有更好的選擇,我們把原始數據和我們想要的數據的樣子扔個這個Beautifulsoup,然后讓它幫我們去尋找,這也是一個不錯的方案,但是論靈活性,第二招還是略遜于第一招。
第三招:雙劍合璧
最厲害的招式莫過于結合第一招和第二招了,打破天下無敵手。
基礎知識我都會,可是我還是寫不了一個爬蟲啊!
客觀別急,這還沒完。
以下這些項目,你拿來學習學習練練手。
兩個教學項目你值得擁有:
-
03. 豆瓣電影TOP250
-
04. 另一種抓取方式
還不夠?這兒有很多:
-
知乎--你需要這些:Python3.x爬蟲學習資料整理
-
如何學習Python爬蟲[入門篇]? - 知乎專欄
-
知乎--Python學習路徑及練手項目合集
總結
以上是生活随笔為你收集整理的用Python爬网页需要了解什么背景知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面试问烂的 MySQL 四种隔离级别,看
- 下一篇: 坑爹!花费2亿耗时2年,网站没建完Jav