想學python網絡爬蟲,應該怎麼開始?怎麼應用到實際的工作中?

北京旅行家


計算機二級Python證書,對於學習沒有任何用處。如果不是為了工作中的評職稱用,建議還是不要在計算機等級證書上浪費時間。


1、Python基礎學習

如果之前沒有任何編程語言基礎的話,還是建議從Python書籍開始,一步一個腳印,對書上的例子每一個都動手編碼實踐一遍。這裡推薦幾本書,可作為參考:

  • Python編程,從入門到實踐

  • Python官方教程文檔

  • Python核心編程

  • 流暢的Python

初學者的話,可直接使用下載安裝VSCode編碼,作為一款編輯器安裝包足夠小巧,搭配Python插件代碼智能提示、動態調試等功能還是很香的。

寫代碼的時間一定要大於看書看視頻的時間!

寫代碼的時間一定要大於看書看視頻的時間!

寫代碼的時間一定要大於看書看視頻的時間!

千萬不要只看書,不動手編程!


2、Web基礎知識學習

這裡主要是HTML、CSS、JavaScript等基礎語言的學習。不懂得Web如何構成,那麼爬蟲也很難吧,例如下圖你想爬取京東物品價格,可是不懂得瀏覽器的F12功能、看不懂CSS,怎麼開始呢?

一般來說,網站由導航欄、欄目、及正文內容組成,在每個部分中一些div元素、標題a元素、屬性class、段落p等等組成,萬變不離其宗。這些都是要求學習瞭解的。

3、網絡協議基礎知識學習

爬蟲過程,可能打交道最多的就是HTTP、HTTPS協議了,試問“從瀏覽器輸入URL到頁面返回都經歷了哪些過程”這樣一個簡單的題目你都不瞭解的話,怎麼能玩好爬蟲呢?

這裡推薦書籍《圖解HTTP》,用生動形象的語言,搭配各類圖片將晦澀的專業知識娓娓道來,有需要這本書PDF的可以關注留言。當然,學習基礎網絡知識的過程中,可以搭配Wireshark、Fiddler等抓包軟件一起學習。

4、實戰

有了以上的基礎後,就可以實戰Python爬蟲了,可以從一些簡單的小demo開始,比如你喜歡看電影,可以爬取豆瓣Top50熱門電影影評;爬取微博某V的漂亮圖片等等等等。

Talk is Cheap,Show Me Your Code!

在IT行業,能用代碼解決的問題就不要多說話,這裡直接推薦一波優秀的Github開源項目「awesome-python-login-model」,這裡就不再貼地址了,大家直接去git上搜索即可。使用python模擬登陸一些大型網站,還有一些簡單的爬蟲。


最後推薦一本國內作者不可多得的好書《Python3網絡爬蟲開發實戰》,豆瓣評分9.0,課幫助系統的學習爬蟲技術的方法面面,有需要PDF的朋友可以關注留言我。


一個程序員的奮鬥史


網絡爬蟲,說的簡單明瞭一些,就是基於一定規則自動獲取網絡數據,不管哪種編程語言都可以輕鬆實現,python針對網絡爬蟲,提供了大量非常實用的模塊和框架,初學來說非常容易,下面我簡單一下python爬蟲的學習過程,感興趣的朋友可以嘗試一下:

基礎的網頁知識

這個是最基礎也是必須掌握的,我們所爬取的大部分內容都是嵌套在網頁中,不管是文本、圖片、鏈接,還是視頻、音頻都基於html編寫顯示,你要學習網絡爬蟲,首先最基本的就是要能看懂網頁,知道爬取的內容嵌套在哪個標籤中,如何去提取,如果你沒有任何網頁知識,建議學習一下,兩三天時間就能搞懂,不需要精通,能基本看懂就行:

熟悉python基礎

網頁知識掌握差不多後,就是python入門,這個也是爬蟲的基礎,畢竟我們定義的所有爬取規則都是基於python編碼實現,如果你沒有任何python基礎,建議好好學習一下(長久來說,也非常有益),基本的語法、語句、函數、類、文件操作、正則表達式等都要熟悉掌握,花個一兩個周時間就行,相比較c++、java等編程語言,python學習起來還是非常容易的,入門門檻比較低:

python爬蟲入門

python基礎熟悉後,就是python爬蟲入門,初學的話,可以先從簡單易學的爬蟲庫開始,requests、beautifulsoup、urllib、lxml等都非常不錯,官方帶有非常詳細的教程示例,很快就能熟悉和掌握,對於爬取大部分靜態網頁來說,都可以輕鬆實現,先獲取網頁數據,然後解析提取,最後再保存下來(動態網頁數據的獲取需要抓包分析,但基本原理類似):

爬蟲實戰進階

爬蟲基礎熟悉後,為了提高開發效率,避免反覆造輪子,這裡你可以學習一下爬蟲框架,python來說,比較著名,也比較受歡迎的就是scrapy,免費開源跨平臺,只需添加少量代碼,即可快速開啟一個爬蟲程序,爬取的內容來說,就可以非常多了,可以是文本、圖片、鏈接、視頻等,都是基於一定規則提取解析,最重要的就是多練習,多調試代碼,不斷積累經驗,深入一些的話,就是多線程、分佈式,提高效率:

python爬蟲學習來說,其實不難,只要你有一定python基礎,很快就能掌握的,數據獲取下來後,最重要的還是分析,這才是重中之重,當然,python針對數據分析也提供了大量的包,比較常用的就是pandas、numpy等,網上也有相關教程和資料,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。


小小猿愛嘻嘻


你好,我來回答下這個問題。看樣子你是想從事Python編程方面的教育工作或者進入軟件公司工作,我也是從事軟件開發8年多了,主要以負責核心技術架構為主,目前也在從事編程方面的教育培訓工作。


我覺得學習編程,興趣是第一位的,你首先要喜歡上這門語言,才可以學習的持久,可以學的深入。


不知道你沒有編程方面的基礎,如果有的話,那就最好了,因為說實話,Python編程不難學的,和Java、C等比起來簡單一些。建議你還是買一些Python方面的書籍來學,建議買國外寫的一些IT書籍,質量更高一些。這裡給你推薦幾本:



爬蟲知識是Python知識體系中的一部分,也是Python比較擅長和成熟的部分,目前已經有不少優秀的框架了,使用起來很簡單,不過我建議你還是通過看書來有體系的學習一下比較好。


考證書的話,如果你是從事Python教育工作,那還有一點用處;如果你是進入軟件公司上班,那我建議這個證書大可不必去考,公司不會看這的,也不會以這個評估你Python水平的高低,以你的實力說話。


如果你覺得學習Python有些枯燥,可以看下我發佈的原創系列視頻《跟我學Python,創意編程之旅》,@科技時代聊編程 ,謝謝,希望可以幫助到你。


科技時代聊編程


學習Python爬蟲首先要具備一些必備知識,

  • Python

  • html

  • 正則表達式

Python是我們用於爬蟲的工具,結合requests、BeautifulSoup等第三方工具包可以實現程序的開發。而html是我們要爬的目標,需要了解其中標籤的含義。另外,在爬蟲過程中需要很多字段和標籤的匹配,這會經常用到正則表達式。

當然,一個成熟的爬蟲需要的技能遠不止這些技能。下面我就以最簡單的思路,逐步介紹一下如何開始爬蟲,保證一文看完就能明白。


前言

就如同標題指明的那樣,本文主要針對入門,如果尋求進階,或者在爬蟲方面走的更遠,本文提供的幫助是微乎其微的,本文的主要目的就是用簡單的方式、簡單的語言幫助對網頁爬蟲感興趣的同學。
目前網上有關網頁爬蟲的指導有很多,但是套路卻是千篇一律,基本都是圍繞以下內容進行展開,
  • CSS/html等網頁知識
  • requests或urllib
  • BeautifulSoup或正則表達式
  • Selenium或者Scrapy
對於我來說,學習爬蟲知識一項獲取數據的工具,而不是工作的主要內容,因此,沒有太多的時間花費在上述知識成體系的學習上面。上述提到的每塊都涉及大量的知識,一段時間的學習之後容易讓人陷入"雲裡霧裡",然後就喪失了學習的興趣,沒有全局觀、沒有重點,最終使得學習效率非常低下。
本文不詳細的講解什麼是CSS/html,怎麼用requests或者urllib,本文主要目的是介紹怎麼去爬取一個網站、爬取我們需要的資源,可能會用到上述一個或幾個模塊裡的知識,對我們用到的功能瞭解即可,沒有必要從頭至尾的學習一遍,希望能夠用這種方法讓對爬蟲感興趣的同學對這項技術有一個統籌的認識,能夠滿足日常獲取數據的需求,如果想要在這項技術上深入研究,可以後續學習其他成體系的課程,對上述模塊認真、詳細的學習。

準備工作

很多網頁爬蟲的教程中使用或者提及到很多工具,本文選擇以下幾項工具,
  • 網頁瀏覽器(Google Chrome)
  • BeautifulSoup4
  • requests
網頁瀏覽器主要用於查看網頁html源碼和檢查網頁單元使用,瀏覽器有很多,谷歌、火狐、IE等,每個人的喜好不同,可以根據自己的日常習慣進行選擇,本文以Google Chrome為例進行講解。
BeautifulSoup4是一個HTML、XML的解析器,它能夠輕而易舉的解析web網頁,從中獲取我們想要的單元和信息,能夠避免篩選信息時的麻煩,它能夠提供用於迭代、搜索、修改解析樹的用法。在網頁匹配過程中BeautifulSoup的速度並不比正則表達式快,甚至還要慢一些,但是它最大的優勢就是簡單、便捷,因此是很多網頁爬蟲工程中的必選工具之一。

安裝

$ pip install beautifulsoup4
requests是Python大神Kenneth Reitz的力作,是一個用於網絡請求的第三方庫,Python已經內容了urllib模塊用於訪問網絡資源,但是使用起來相對麻煩,而requests相比之下要方便快捷很多,因此本文選擇用requests進行網絡請求。

安裝

$ pip install requests

動手實踐

很多教程選擇爬取糗事百科、網頁圖片,本文就選取另外一個方向,爬取我們常用的百度百科,這樣更加直觀、易於理解。
經常瀏覽網頁,注意細節或者善於總結的會發現,網址主要有兩部分組成,基礎部分,和對應詞條的後綴,例如上述百科詞條,由基礎部分https://baike.baidu.com組成,後綴是item/林志玲/172898?fr=aladdin,因此我們要爬取一個網站首先要獲取一個網址。
第一步,要確定一個目標,你要爬取什麼數據?
很多人會認為,這不是廢話嗎?我個人認為這是很重要的,有目的才會效率更好,在沒有某種目標驅動的情況下,就很難帶著問題和壓力去做一件事情,這樣會變得漫無目的,導致效率很低,因此,我認為最重要的是首先要清楚想爬取什麼數據?
  • 網頁上的音樂
  • 圖片
  • 素材
  • ...
本文就以爬取百度百科詞條內部鏈接和下載圖片為目標進行講解。
第二步,我們要獲取一個基礎的網址,百度百科的基礎網址,
https://baike.baidu.com/
第三步,打開首頁,
以林志玲的百度詞條為首頁開始爬取。
第四步,查看源碼,
很多人都知道查看源碼的快捷鍵是F12,不管是谷歌瀏覽器還是IE瀏覽器,都是這樣,但是當按下F12之後會不由得疑問,"這是什麼東西?",令人毫無頭緒。
當然,可以一步一步的去了解源碼,學習html的知識,然後用正則表達式去一步一步、一個單元一個單元的匹配我們想要的信息,但是這樣未免太複雜了,我個人推薦使用檢查工具。
爬取內部鏈接
指向我們想要了解的元素,
素,鼠標右鍵->檢查,能夠快速定位我們關注的元素。
我覺得到這一步就已經夠了,最簡單的網頁爬蟲就是反覆的重複以下兩個步驟:
  • 檢查定位我們想要的元素和屬性
  • BeautifulSoup4匹配我們要的信息
通過檢查功能可以看到,百科詞條內部鏈接部分的源碼是這樣的,
元素1:
元素2:
元素3:
元素4:
從上述4個元素可以看出,我們想要的信息詞條內部鏈接在標籤 中,標籤中有以下幾個屬性:
  • target:這個屬性貴姓在何處打開鏈接文檔,_blank標明瀏覽器總在一個新標籤頁載入目標文檔,也就是鏈接href指向的文檔。
  • href:前面已經提過很多次,屬性href用於指定超鏈接目標的鏈接,如果用戶選中了標籤 中的內容,則會嘗試打開並顯示href指定鏈接的文檔。
  • data-*:這是html的新特性可以存儲用戶自定義的屬性。
可以看出,我們想要的信息就在href中,也就是詞條的內部鏈接。因此,我們爬蟲的目標就很明確了,就是解析出href超鏈接。
到這裡,瀏覽器檢查功能已經發揮了它的作用,下一步問題就變成了我們怎麼解析出標籤中href的鏈接?
這時,BeautifulSoup4就派上用場了。
用BeautifulSoup4解析我們從網頁上抓取的html,
soup = BeautifulSoup(response.text, 'html.parser')
看到這裡也許會疑惑,html.parser是什麼?
這是一種html的解析器,Python中提供幾種html解析器,它們的主要特點分別是,
綜合來說,我們選取html.parser解析器,
選取好解析器之後就開始著手匹配我們想要的元素,可是看一下html發現,網頁中有很多 標籤,我們該匹配哪一類呢?
仔細看一下會發現特點,target="_blank",屬性href以/item開頭的,於是就有了我們的匹配條件,
{"target": "_blank\

Jackpop


說實話考計算機二級證書基本沒什麼用,對工作也沒幫助,還不如多練習,下面學習爬蟲的路線,可以參考著學。

1、瞭解爬蟲的基本原理及過程

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

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

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

3、瞭解非結構化數據的存儲

爬回來的數據可以直接用文檔形式存在本地,也可以存入數據庫中。開始數據量不大的時候,你可以直接通過 Python 的語法或 pandas 的方法將數據存為csv這樣的文件。

4、學習 scrapy,搭建工程化的爬蟲

掌握前面的技術一般量級的數據和代碼基本沒有問題了,爬蟲最好框架之一。

5、學習數據庫基礎,應對大規模數據存儲

爬回來的數據量小的時候,你可以用文檔的形式來存儲,一旦數據量大了,這就有點行不通了。

6、掌握各種技巧,應對特殊網站的反爬措施

爬蟲過程中也會經歷一些絕望,比如被網站封IP、比如各種奇怪的驗證碼、userAgent訪問限制、各種動態加載等等。

7、分佈式爬蟲,實現大規模併發採集

爬取基本數據已經不是問題了,你的瓶頸會集中到爬取海量數據的效率。這個時候,相信你會很自然地接觸到一個很厲害的名字:分佈式爬蟲。分佈式這個東西,聽起來很恐怖,但其實就是利用多線程的原理讓多個爬蟲同時工作,需要你掌握 Scrapy + MongoDB + Redis 這三種工具。


卡西尼試驗場


本文集詳解網絡爬蟲的原理、工具、框架和方法。

詳解從簡單網頁到異步加載網頁,從簡單存儲到數據庫存儲,從簡單爬蟲到框架爬蟲等技術。

類別:

  • 22個網絡爬蟲綜合實戰案例、30個網站信息提取
  • 詳解爬蟲的3大方法:、和
  • 詳解爬取數據的4大存儲方式:、、和
  • 詳解Scrapy爬蟲框架的安裝、項目創建、文件使用及爬取數據的存儲

引子

隨著Internet的飛速發展,互聯網中每天都會產生大量的。如何從這些非結構化數據中提取有效信息,供人們在學習和工作中使用呢?這個問題促使網絡爬蟲技術應運而生。

由於Python語言簡單易用,而且還提供了優秀易用的第三方庫和多樣的爬蟲框架,所以使得它成為了網絡爬蟲技術的主力軍。

近年來,大數據技術發展迅速,數據爬取作為數據分析的一環也顯得尤為重要。程序員要進入與數據處理、分析和挖掘等相關的行業,就必須要掌握Python語言及其網絡爬蟲的運用。

目錄

第 1 章 Python零基礎語法入門

本章介紹了Python和PyCharm的安裝及Python最為簡單的語法基礎,包括簡單的流程控制、數據結構、文件操作和麵向對象的編程思想。

第 2 章 爬蟲原理和網頁構造

本章通過介紹網絡連接原理,進而介紹了爬蟲的原理,講解了爬蟲的基本流程,另外還介紹瞭如何使用Chrome瀏覽器認識網頁構造和查詢網頁信息。

第 3 章 我的第一個爬蟲程序

本章主要介紹了安裝請求和解析網頁的Python第三方庫、Requests庫和BeautifulSoup庫的使用方法,最後通過綜合案例手把手教會讀者編寫一個簡單的爬蟲程序。

第 4 章 正則表達式

本章主要介紹了正則表達式的常用符號及Python中re模塊的使用方法,在不需要解析庫的情況下完成一個簡單的爬蟲程序。

第 5 章 Lxml庫與Xpath語法

本章主要介紹了Lxml庫在Mac和Linux環境中的安裝方法、Lxml庫的使用方法及Xpath語法知識,並且通過案例對正則表達式、BeautifulSoup和Lxml進行了性能對比,最後通過綜合案例鞏固Xpath語言的相關知識

第 6 章 使用API

本章主要介紹了API的使用和調用方法,對API返回的JSON數據進行解析,最後通過使用API完成一些有趣的綜合案例。

第 7 章 數據庫存儲

本章主要介紹了非關係型數據庫MongoDB和關係型數據庫MySQL的相關知識,並通過綜合案例展示了Python對兩種數據庫的存儲方法。

第 8 章 多進程爬蟲

本章主要介紹了多線程及其概念,並通過案例對串行爬蟲和多進程爬蟲的性能進行了對比,最後通過綜合案例介紹了多進程爬取數據的方法和技巧。

第 9 章 異步加載

本章主要介紹了異步加載的基本概念,以及如何針對異步加載網頁使用逆向工程抓取數據,最後通過綜合案例講解了逆向工程的使用方法和常用技巧。

第 10 章 表單交互與模擬登錄

本章主要介紹了Requests庫的POST方法,通過觀測表單源代碼和逆向工程來填寫表單以獲取網頁信息,以及通過提交cookie信息來模擬登錄網站。

第 11 章 Selenium模擬瀏覽器

本章主要介紹了Selenium的模塊的安裝、Selenium瀏覽器的選擇和安裝,以及Selenium模塊的使用方法,最後通過綜合案例介紹瞭如何對採用異步加載技術的網頁進行爬蟲。

第 12 章 Scrapy爬蟲框架本章主要介紹了Windows 7環境中的Scrapy安裝和創建爬蟲項目的過程,並通過案例詳細講解了各個Scrapy文件的作用和使用方法,而且通過多個綜合案例講解了如何通過Scrapy爬蟲框架把數據存儲到不同類型的文件中,最後講解了如何編寫跨頁面網站的爬蟲代碼。


工匠理念


學習網絡爬蟲,首先需要系統的學習python基礎知識,雖然不用學也能跟著別人的代碼做,但是最好能系統的學習下基礎知識,要不很多時候你是懵逼狀態的,然後需要學習抓包分析數據知識,因為爬蟲類的知識都是需要分析被爬去目標的數據結構,類型,在進行過濾篩選出自己需要的數據,不過現在有很多現成的爬蟲框架,沒必要自己造輪子,但是也最好能自己造輪子,這樣有利於提高自己的編碼能力。


huzibbs


現在很多網站都有教程的,個人建議可以先看看學習視頻,我要自學網,不錯的網站,可以看看,適不適合自己,如果,想要深入的話,系統地掌握的話,那就要買本書看看,自己可以先看看電子書,我平時看得,掌閱書城,裡面有不少書,想學習,門路還是很多的,嘿嘿嘿


小白讀書課


踏踏實實開始買本書,照著案例一個一個來,想要上天得一步一步來


分享到:


相關文章: