只針對 Python 爬蟲,該如何學習?
如題,知識是無限的,精力是有限的, 不能讓我有限的精力都投入到無限的學習中, 我要生活,要妹子。 所以 目標很明確: 我需要爬蟲來做些事,用python(只做爬蟲,用3.X 還是2.X ), 那麼問題來了, 無編程經驗, 請問學哪些比較好, 不想什麼都學, 只學與做爬蟲有關的, 鏈接分析,數據過濾、數據抓取、數據入庫(什麼鬼 什麼庫), 最後的呈現形式: 要麼資料庫里弄出來,圖形化的,類似excel, 可以很方便的查詢、閱讀。 最終產品不能是CMD那樣窗口的。
那麼各位老師前輩靚仔帥哥美女師姐師妹, 我到底應該學哪些東西 才能在不分散精力學些用不到的東西的情況下掌握好用python做爬蟲呢?(一口氣差點沒接上來)
我在極客學院做了一個定向爬蟲的入門系列課程。
引用自我的另一個答案:Python 爬蟲如何機器登錄新浪微博並抓取內容? - 青南的回答
- 基本的正則表達式
- 單線程爬蟲
- Xpath與多線程爬蟲
- 簡單的模擬登錄
- Scrapy初探
- MongoDB與Scrapy
- Scrapy與Redis入門
- 動態載入網頁的爬取
希望能幫到你~
如果爬取的是信息,文本之類的,幾點比較基本的,但是可能會很有用,別人也不輕易告訴你的小提示,以下不分先後,想到什麼說什麼。0. 源網站能爬api的爬api,不能爬api的爬頁面,實在實在不行還有phantomjs和selenium。。。(誤,初學者可以先放棄了)1. 用requests庫去處理http請求,不要用urllib urllib22. 你的爬取腳本和解析腳本要分開,爬取腳本只爬取內容(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爬蟲的路線。也希望能成為一篇不錯的入門爬蟲教程,總之,希望自己能堅持把這個系列專欄寫完。
學習之前需要哪些準備?
- 一顆熱愛學習,不屈不撓的心
- 一台有鍵盤的電腦(什麼系統都行。我用的os x,所以例子會以這個為準)
- html相關的一些前段知識。不需要精通,能懂一點就夠!
- Python的基礎語法知識 。
如果我一點編程基礎都沒有怎麼辦?
現在開始學!Python是一門非常適合做入門學習的語言。如果你沒有任何其他編程語言的基礎,那麼就來學Python吧。
我自己目前同時在學java和Python,就我自己的感覺來說,Python的語法簡直太美妙了 不是有句話叫 Life is short, Use Python
有什麼推薦的入門教材么?
- 笨辦法學Python(Learn Python the Hard Way),我看的這本書入門的,非常有趣,網上有翻譯的版本,當然有條件的同學還是去看英文原著會更好。
- 廖大的Python3教程(廖雪峰的Python3教程)
- 自強學堂的教程(Python 學習資源 - 學習分享 - 自強學堂)
- 菜鳥學習資源(菜鳥教程 - 學的不僅是技術,更是夢想!)
- html入門學習(w3school 在線教程)
- 看看知乎大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 |