最近開始學習Python語言,學完了《與孩子一起學編程》,看完了官方的tutorial。現在正在看中文版的《Learn Python》,感覺這本書講的實在是太多了,更像一本參考書,學習的興趣也降低了,我很想去弄一些網頁抓取,抓取資料之類的,可是又覺得基礎不夠,各位有經驗的前輩們請求指教(本人非電腦專業,但是對這方面還是挺感興趣的,每天大概能抽出2小時左右的時間去學習Python)
回複內容:
興趣會在一直看書而不實乾的時間內被消耗.
想學爬蟲又擔心基礎不夠的話, 可以先試著用Scrapy.
按照每天2個小時的進度, 先花1天的時間把文檔過一遍.
Scrapy 0.24 文檔
鑒於題主是非電腦專業, 也許你還需要瞭解以下內容:
- HTML標籤的基礎知識,能看懂標籤的意義就好
- http基礎知識, get, post,json這些亂七八糟的名詞是什麼鬼
以上都可以在w3school 線上教程
這個網站得到基本的瞭解.
假設以上基礎題主已經有了, 可以找豆瓣或者其它一些小站,參照文檔開始寫個小爬蟲
遇到一些需要驗證或者Cookie的就先放棄吧, 入門先專註於讓爬蟲能跑起來, 這也是維持學習興趣的方法
當你達到可以隨心所欲寫個爬蟲爬資料的地步,可以考慮最佳化了, 什麼防爬, 使用者驗證, Cookie, 類比登入, 多線程提高爬取效率之類的...
我一開始就是先對豆瓣下的手, 在第2天的時候寫了個小爬蟲爬了100多萬的書的資料存到資料庫裡,有了資料卻不知道拿來幹什麼, 感覺沒什麼意思. (值得一提的是, 豆瓣有個防爬驗證, 爬取速度過快會要求你輸驗證碼以判定你不是機器人. 記得把延遲設定一下, 不然你的爬蟲會很討人厭的)
於是打算去爬知乎,聽說知乎防爬比較厲害(之前試過被知乎封IP段),於是打算去搞個代理池通過高匿名代理來爬知乎, 在網上找了個代理買了半年的服務, 結果發現提的代理都連不上, 感覺太麻煩了, 乾脆自己去爬代理, 期間覺得scrapy對爬代理這種小東西有點殺雞用牛刀的感覺, 於是自己用pycurl + beatifulsoup寫了個簡易爬蟲來爬, 現在有一些短時間內比較穩定免費代理可以用了, 感覺可以開始爬知乎了. 目前只實現了爬取某人的動態並發郵件到自己的郵箱, 嘛, 就像這位仁兄做的那樣
能利用爬蟲技術做到哪些很酷很有趣很有用的事情? - 伍新生的回答
以上的經曆從開始看文檔到現在, 大概花了10天的時間, 期間有大部分時間在查資料.還有考慮先自己寫還是用架構等這些無謂的消耗裡, 所以別想這麼多, 決定一個方向直接走起, 你會發現你覺得好像很難的東西, 在幾天后覺得其實沒那麼困難~我寒假學python,只學了10天就開始學著寫爬蟲。。。一邊做一邊看書看別人的部落格,找源碼分析。
在寫的過程中就能發現自己缺少什麼,需要學習什麼,要學到什麼程度,以及最為重要的學這個是為了什麼,能夠做哪些事情。
寫過一些簡單的爬蟲和小指令碼之後,開始系統的看書,因為這時候就知道該怎麼系統的學習了。
有目標的學習比漫無目的的學習進步要快得多。瞭解基本文法之後,開始嘗試寫東西,寫個小遊戲之類的,雖然會覺得很難,但比單純的學要高效的多魚C論壇零基礎入門學習python視頻,裡面有教你如何製作一個爬蟲爬妹子圖片,很有趣。論壇裡面也有很多網友編寫的小項目可以參考一下。網址
http://bbs.fishc.com
推薦一本書《python基礎教程》,書的最後有好幾個小項目,實現起來還是非常有趣的。
總之,學習程式設計語言是為瞭解決生活中的實際問題,不要為了學而學,莫忘初衷,才能有源源不斷的學習動力。基本文法掌握後,調你感興趣的一塊深入研究,比如我就對pygame感興趣,自己寫了個打飛機的遊戲。1、稍微能看英文書籍
2、在瀏覽器中鍵入Electronic library. Download books free. Finding boooks
3、輸入“with python”並且按斷行符號
4、找到感興趣的書籍並且單擊下載
5、啪啪啪既然你對抓取網頁感興趣,也學完了一本書和官方的教程,我覺得完全可以學習網頁抓取了。不用把它想得那麼複雜,我想你有看那本《learn python》的勇氣,肯定不是有什麼人或者事逼著你要抓取網頁,既然是玩,又何必顧慮重重呢?倒是那本書這麼厚,等你看完黃花菜都涼了,如果不是為了學習語言本身的話,建議先不要啃它了。而且,網頁抓取不只是學好這門python就可以的事,你可能還需要瞭解一些其他的知識。
本人也是python愛好者,學它純粹是出於興趣,偶爾也能在學習中用到它。我學python才幾個月,也簡單的試過網頁抓取,感覺想入門沒那麼難,只要你英文夠好或者勤查字典,對著抓取網頁的庫的官方文檔慢慢學就可以了。推薦你先瞭解一下這幾個相關的庫:requests, BeautifulSoup, lxml。然後可以看看scrapy,再之後我就不知道了。
一起進步!去搞點破壞吧。
已經讀完了這麼多東西,你就不想去寫點什嗎?
從什麼開始呢?
1 爬蟲。這個你在知乎上搜一下爬蟲就會得到很多有意思的故事,說不定還能得到別人的代碼
2 機器人。這裡特指chat bot和社交網站bot。比如基於wechat架構和人人api寫一個表白牆,比如基於xmpp寫一個把icq變成瀏覽器(順帶翻牆?)的機器人等等等等。在不支援群聊的服務上實現個聊天室之類的,開查詢天氣公眾號,利用聊天室開個dnd(龍與地下城)的服,這些代碼架構都不會太大
3 做個網站。被重複發明最多的輪子就是blog。不吐槽。不過做這個可能需要一點js基礎。嗯,“一點”和“基礎”也許該去掉,也許不用。
4 fork。在哪個網站看到了哪個不錯的小遊戲?fork一個出來試試!美工不夠的情況下你也可以得到一個很有意思的基礎版本的遊戲。比如說,做個2048出來唄。
5 kit。小工具也是很不錯的選擇,同樣是2048,寫個啟發學習法搜尋的2048協助程式讓你判斷目前狀態哪個方向更有利不是也不錯。
嗯?你說這些你都不知道怎麼下手?都沒學過?
但是,你已經掌握了Python的大半,剩下來的已經不是Python的問題。
你需要學的,是收集資訊,比如一個爬蟲tutor,在有google的世界裡,這是很簡單的事,但是在沒有Google的世界裡,可能需要一點更傳統的方法或一個訪問Google的方法,哪一個更簡單,很難說。
你需要學的,是分析需求,分解它們,再析理它們,使他們只按內在邏輯排列。
你需要學的,是組織代碼,這個可能Python能幫到你,看一看pep8會有協助。
從今以後,書便不再是你的老師,而是你的工具,你會從各種地方學到這些東西,也可能找遍各處都學不到,它們可能在別人的代碼裡,別人的需求文檔裡,甚至是你的夢裡。
調研,設計,編碼,重構,編程就在其中了,也許世界都在其中了。
要繼續寫下去,功夫已經在詩外了。Python入門的話,首推《A Byte of Python》,花很短的時間就能看完,並且看完後就可以寫一些小東西了。後面在實踐的時候可以多上網找些執行個體參考,多看看Python Manuals,熟悉了就好。正如二樓所說的,興趣會在一直看書而不實乾的時間內被消耗,想學好一門技術,是需要不斷的磨練,而不是只是看看而已,只有從實幹中才能找到經驗,如果實在不知道如何去進行項目實戰,可以看看麥子學院上面的分頁器Paginator的使用
這個項目實戰,可以慢慢的模仿,然後變成自己的知識。先看head first python入門,然後照著寫個簡單的web,接下來就根據自己的研究方向可以深入了。有好的代碼記得共用,看著下載量增加會很有成就感:)