學爬蟲,我需要掌握哪些Python基礎?
更多爬蟲例項請見 https://blog.csdn.net/weixin_39777626/article/details/81564819
接觸爬蟲已經有一段時間了,常常有人問我:我會點Python,想自學爬蟲,你看用什麼方法好呢?
我:我喜歡邊做專案邊學習,爬取過程中遇到問題再百度,擴充套件
xx:我看了網上教材,過程很簡略,最後給了一個編碼,有的我例項一下好像還不成功
我:程式碼也會“過期”,尤其是爬蟲,需要自己修改
xx:怎麼修改?
我:Python學到哪了?
xx:集合
我:。。。
入手爬蟲確實不要求你精通Python程式設計,但基礎知識還是不能忽視的,那麼我們需要哪些Python基礎呢?
首先我們先來看看一個最簡單的爬蟲流程:
- 第一步要確定爬取頁面的連結,由於我們通常爬取的內容不止一頁,所以要注意看看翻頁、關鍵字變化時連結的變化,有時候甚至要考慮到日期;另外還需要主要網頁是靜態、動態載入的。
- 第二步請求資源,這個難度不大,主要是Urllib,Request兩個庫的使用,必要時候翻翻官方文件即可
- 第三步是解析網頁。請求資源成功後,返回的整個網頁的原始碼,這時候我們就需要定位,清洗資料了
談到資料,第一個要注意的點就是資料的型別,是不是該掌握!
其次,網頁上的資料往往排列十分整齊,這多虧了列表,使用大部分網頁資料整潔而有規律,所以列表、迴圈語句是不是也要掌握!
但值得注意得是網頁資料不一定都是整齊而有規律的,比如最常見的個人資訊,除了必填選項,其他部分我就不愛填,這時候部分資訊缺失了,你是不是得先判斷一下是否有資料,再進行抓取,所以判斷語句是不是也不能少!
掌握以上內容,我們的爬蟲基本上能跑起來了,但為了提高程式碼效率,我們可以藉助函式將一個程式分割成多個小部分,每部分負責一部分內容,這樣就能根據需要多次調動一個函式了,如果你再厲害點,以後開發個爬蟲軟體,是不是還要再掌握個類 - 第四步是儲存資料,是不是得先開啟檔案,寫資料,最後關閉啊,所以是不是還得掌握檔案的讀寫啊!
所以,你需要的掌握的最最最基本的Python知識點有
執行緒與程式
當然只掌握這些是遠遠不夠的,因為我們還有分散式爬蟲,爬蟲框架等,這要求我們掌握執行緒與程式;這兩個可能會比較陌生,我還沒接觸爬蟲時候也不懂這些,所以先來看看他們的概念
- 程式: 資源分配的最小單位
- 執行緒: 程式執行的最小單位
看起來太抽象了,我們打個比方吧:
程式就相當於你開啟的一個個程式,如QQ,微信,微博等,而程式就相當於程式裡的每一個命令,如收發訊息等
1.多執行緒與多程式
多執行緒、多程式顧名思義就是多個執行緒、程式並行,是實現多工的好幫手,所以在效率上有
單程式+單執行緒 < 單程式+多執行緒 < 多程式+多執行緒
再來打個比方,假如我要給整個班級的同學發份資料,我可以通過微信一個一個地發給他們——單程式+單執行緒,但這效率實在太低了,特別費時;於是我可以選擇用微信群發啊——單程式+多執行緒,這樣效率一下子提高了很多,但問題又來了,微信群發上限是200人,假如我要給400人發檔案,是不是就得分兩次群發呢?為了節省時間,我還可以一部分用qq群發,一部分用微信群發,這就是多程式+多執行緒
比較
多程式 | 多執行緒 | |
資料共享 同步 |
複雜 簡單 |
簡單 複雜 |
記憶體 CPU |
佔用記憶體多,切換複雜 利用效率低 |
佔用記憶體少,切換簡單 利用效率高 |
建立銷燬 切換 |
複雜,速度慢 |
簡單,速度快 |
程式設計 除錯 |
簡單 簡單 |
複雜 複雜 |
可靠性 | 程式間不會相互影響 | 一個執行緒掛掉將導致整個程式掛掉 |
分佈性 | 多核、多機 | 多核 |
更多爬蟲例項請見 https://blog.csdn.net/weixin_39777626/article/details/81564819
相關文章
- Python爬蟲學習線路圖丨Python爬蟲需要掌握哪些知識點Python爬蟲
- 什麼是爬蟲?Python爬蟲工作需要掌握哪些技能?爬蟲Python
- 學習Python需要掌握哪些要點?Python基礎!Python
- 學 Java 網路爬蟲,需要哪些基礎知識?Java爬蟲
- Python爬蟲需要學哪些東西?這些知識點必須掌握!Python爬蟲
- 要學會Python爬蟲都需要什麼基礎呢?Python爬蟲
- Python:基礎&爬蟲Python爬蟲
- python爬蟲基礎概念Python爬蟲
- python_爬蟲基礎Python爬蟲
- 參加Python培訓需要掌握什麼?爬蟲怎麼學!Python爬蟲
- 從零基礎開始學習Python爬蟲你需要注意的點以及如何學習爬蟲Python爬蟲
- Python爬蟲之Scrapy學習(基礎篇)Python爬蟲
- 0基礎學習Python,需掌握哪些方法?Python
- 【0基礎學爬蟲】爬蟲基礎之資料儲存爬蟲
- 【0基礎學爬蟲】爬蟲基礎之檔案儲存爬蟲
- Python零基礎爬蟲教學(實戰案例手把手Python爬蟲教學)Python爬蟲
- 爬蟲入門基礎-Python爬蟲Python
- Python爬蟲基礎之seleniumPython爬蟲
- python爬蟲基礎之urllibPython爬蟲
- Python分散式爬蟲(三) - 爬蟲基礎知識Python分散式爬蟲
- Python爬蟲之路-爬蟲基礎知識(理論)Python爬蟲
- python網路爬蟲(9)構建基礎爬蟲思路Python爬蟲
- Python培訓分享學Python需要掌握哪些技能Python
- 【Python學習】爬蟲爬蟲爬蟲爬蟲~Python爬蟲
- 學Java需要哪些基礎?Java
- 零基礎轉行學Web前端,需要掌握哪些技術?Web前端
- 爬蟲基礎爬蟲
- 【0基礎學爬蟲】爬蟲基礎之自動化工具 Pyppeteer 的使用爬蟲
- 【0基礎學爬蟲】爬蟲基礎之自動化工具 Playwright 的使用爬蟲
- 【0基礎學爬蟲】爬蟲基礎之自動化工具 Selenium 的使用爬蟲
- 【0基礎學爬蟲】爬蟲基礎之網路請求庫的使用爬蟲
- python爬蟲基礎與http協議Python爬蟲HTTP協議
- 人工智慧AI需要掌握哪些基礎知識?人工智慧AI
- 爬蟲基礎---1爬蟲
- 爬蟲基礎篇爬蟲
- 什麼是Python爬蟲?Python爬蟲常用框架有哪些?Python爬蟲框架
- 什麼是爬蟲?Python爬蟲框架有哪些?爬蟲Python框架
- Python爬蟲基礎-01-帶有請求引數的爬蟲Python爬蟲