標籤:

只針對 Python 爬蟲,該如何學習?

如題,知識是無限的,精力是有限的, 不能讓我有限的精力都投入到無限的學習中, 我要生活,要妹子。 所以 目標很明確: 我需要爬蟲來做些事,用python(只做爬蟲,用3.X 還是2.X ), 那麼問題來了, 無編程經驗, 請問學哪些比較好, 不想什麼都學, 只學與做爬蟲有關的, 鏈接分析,數據過濾、數據抓取、數據入庫(什麼鬼 什麼庫), 最後的呈現形式: 要麼資料庫里弄出來,圖形化的,類似excel, 可以很方便的查詢、閱讀。 最終產品不能是CMD那樣窗口的。

那麼各位老師前輩靚仔帥哥美女師姐師妹, 我到底應該學哪些東西 才能在不分散精力學些用不到的東西的情況下掌握好用python做爬蟲呢?(一口氣差點沒接上來)


我在極客學院做了一個定向爬蟲的入門系列課程。

引用自我的另一個答案:Python 爬蟲如何機器登錄新浪微博並抓取內容? - 青南的回答

  1. 基本的正則表達式
  2. 單線程爬蟲
  3. Xpath與多線程爬蟲
  4. 簡單的模擬登錄
  5. Scrapy初探
  6. MongoDB與Scrapy
  7. Scrapy與Redis入門
  8. 動態載入網頁的爬取

希望能幫到你~


如果爬取的是信息,文本之類的,幾點比較基本的,但是可能會很有用,別人也不輕易告訴你的小提示,以下不分先後,想到什麼說什麼。

0. 源網站能爬api的爬api,不能爬api的爬頁面,實在實在不行還有phantomjs和selenium。。。(誤,初學者可以先放棄了)

1. 用requests庫去處理http請求,不要用urllib urllib2

2. 你的爬取腳本和解析腳本要分開,爬取腳本只爬取內容(raw html),

3. 能利用多線程的地方使用多線程,有時候用gevent什麼的打個補丁也可以接受。

4. 解析的時候正則表達式分段落。把要爬取的東西分成大塊,盡量先用字元串解析的方法把需要的提取出來,再通過正則匹配段落。這樣可維護性比直接寫一個特別長的正則要高。

5. 正則不能用來解析html,這裡有一個stackoverflow上的經典回答 html - RegEx match open tags except XHTML self-contained tags。 不過你會需要beautifulsoup。

6. 解析出來的數據妥善存好,但記得一定要保存raw html!你會需要它們的。

7. 爬取往往不是一次性的事,所以做爬蟲的時候要考慮你會經常用你的腳本和改它,代碼別太雜亂無章。

8. 做好異常處理,熟悉各種http狀態,知道什麼爬蟲時候應該掛掉。不要傻乎乎做了一堆無用請求。

9. 做好被封ip/ua/fingerprint/等等。。的準備。。。

10. 不要用自己上班公司的業務相關的機器爬競爭對手的內容!


我說一下我經歷吧,很久以前看了廖雪峰的python入門教程,看了一部分就中斷了,之後基本忘記了

後來再找教程看基本都是跟他差不多的講語法的入門教程,無意中找到一個實例的教程的博客

http://cuiqingcai.com/tag/爬蟲

(個人強烈推薦,上面兩個中文字也是鏈接一部分)

直接照著寫了幾個基本的爬網頁的,基本就能開始使用了,(博客了使用的是urllib2,urllib3,當然也可以直接用requests庫),然後我自己成功爬到小米路由器頁面的數據(我覺得這個比較經典,要輕微的分析下js的代碼),至此一些簡單的網頁都可以自己爬了

-------------------------------------------------------------------------------------------------------------------------------------------

如果頁面的數據是js生成的就用以上答主說的phantomjs和selenium

鏈接分析 頁面請求什麼的用谷歌牌的瀏覽器的審查元素里的網路看就行了

圖形化的話據說用pyqt 我懶得學...

其他的博客上面和以上答主已經說得很詳細了

以上是作為一個業餘愛好者的一些見解,難免有錯誤..錯了請指出--


最近剛好準備開始寫一個

從零開始寫python爬蟲的系列專欄

希望能幫助到你.

這裡先把導言部分貼過來
-------------------------------------------
從零開始寫Python爬蟲 --- 導言

https://pic4.zhimg.com/122fb1f9f_xs.jpgEhco2 天前

我是一名努力想做 coder 的小伙,目前自學Python有大半年了,期間也寫過一些小的爬蟲。說起來當時想成為程序員就是因為無意間了解到 爬蟲 這個神奇的東西。這裡會記錄自己 重新梳理 學習Python爬蟲的路線。也希望能成為一篇不錯的入門爬蟲教程,總之,希望自己能堅持把這個系列專欄寫完。

學習之前需要哪些準備?

  1. 一顆熱愛學習,不屈不撓的心
  2. 一台有鍵盤的電腦(什麼系統都行。我用的os x,所以例子會以這個為準)
  3. html相關的一些前段知識。不需要精通,能懂一點就夠!
  4. Python的基礎語法知識 。

如果我一點編程基礎都沒有怎麼辦?

現在開始學!Python是一門非常適合做入門學習的語言。如果你沒有任何其他編程語言的基礎,那麼就來學Python吧。

我自己目前同時在學java和Python,就我自己的感覺來說,Python的語法簡直太美妙了 不是有句話叫 Life is short, Use Python

有什麼推薦的入門教材么?

  1. 笨辦法學Python(Learn Python the Hard Way),我看的這本書入門的,非常有趣,網上有翻譯的版本,當然有條件的同學還是去看英文原著會更好。
  2. 廖大的Python3教程(廖雪峰的Python3教程)
  3. 自強學堂的教程(Python 學習資源 - 學習分享 - 自強學堂)
  4. 菜鳥學習資源(菜鳥教程 - 學的不僅是技術,更是夢想!)
  5. html入門學習(w3school 在線教程)
  6. 看看知乎大V們是如何回答這個問題的?(編程零基礎應當如何開始學習 Python ?)

具體的學習路線是什麼?

總體分為三個大方面:

一: 簡單的定向腳本爬蟲(request --- bs4 --- re)

二: 大型框架式爬蟲(Scrapy框架為主)

三:瀏覽器模擬爬蟲 (Mechanize模擬 和 Selenium 模擬)

具體的步驟:

一:Beautiful Soup 爬蟲

  • requests庫的安裝與使用
  • 安裝beautiful soup 爬蟲環境
  • beautiful soup 的解析器
  • re庫 正則表達式的使用
  • bs4 爬蟲實踐: 獲取百度貼吧的內容
  • bs4 爬蟲實踐: 獲取雙色球中獎信息
  • bs4 爬蟲實踐: 獲取起點小說信息
  • bs4 爬蟲實踐: 獲取電影信息
  • bs4 爬蟲實踐: 獲取悅音台榜單

二: Scrapy 爬蟲框架

  • 安裝Scrapy
  • Scrapy中的選擇器 Xpath和CSS
  • Scrapy 爬蟲實踐:今日影視
  • Scrapy 爬蟲實踐:天氣預報
  • Scrapy 爬蟲實踐:獲取代理
  • Scrapy 爬蟲實踐:糗事百科
  • Scrapy 爬蟲實踐: 爬蟲相關攻防(代理池相關)

三: 瀏覽器模擬爬蟲

  • Mechanize模塊的安裝與使用
  • 利用Mechanize獲取樂音台公告
  • Selenium模塊的安裝與使用
  • 瀏覽器的選擇 PhantomJS
  • Selenium PhantomJS 實踐: 獲取代理
  • Selenium PhantomJS 實踐: 漫畫爬蟲

最後,今天也是一時興起才想做這麼一個系列的記錄,最終能不能寫完自己心裡也沒底,

但我會盡量去寫完它。現在是學期中後期了,一大堆節課論文在等著我,(文科生太苦逼)

加上,我也是邊學邊寫,所以寫的的不會太快,我盡量做到每周都寫一兩篇的。

每天的學習記錄都會 同步更新到:
微信公眾號: findyourownway
知乎專欄 : 從零開始寫Python爬蟲 - 知乎專欄
個人博客 : Ehco的博客


推薦閱讀:

pymongo 查詢時,顯示循環不同,為何效率相差百倍?
abaqus的二次開發為何用python語言?
看完了廖雪峰的Python教程 ,只學會了初步,接下來怎麼學習?
用Python写了个函数,解决酒瓶换酒的问题,求大牛们指点?(问题已解决,感谢各位!)

TAG:Python |