Python2和Python3哪個更適合初學者學習來爬蟲呢?
想問下Python2和Python3哪個更適合初學者學習來爬蟲呢?小白一個別見笑
明確你學爬蟲是為了什麼。
為了好玩,那就Python3,妥妥的。
話說Python2.7到2020年就停止維護了,並且Python3現在有很多新特性,至於學爬蟲需要的第三方庫比如Requests、BeautifulSoup也都支持Python3了,這點不用擔心。話說現在連Scrapy這個寫爬蟲的大殺器也支持Python3了吧。
為了工作,那還是Python2.7吧。
之前知乎上有位網易的工程師統計過身邊各大互聯網公司使用Python版本的情況,70%的人都用的是Python2.7。所以找工作的話,最好還是先學Python2。
至於咋學呢?
基礎語法的話,
廖雪峰的教程就挺好(Home - 廖雪峰的官方網站),2.7和3都有。
實在想看書,那就Python學習手冊(第4版) (豆瓣)和Python基礎教程 (豆瓣)二選一。
你要是覺得這兩本書太舊,並且都是講python2的,那你就看這本,Python編程:從入門到實踐 (豆瓣),最新的python3,很新很良心的一本書,16年出版,內容詳實,布置合理,絕對是初學者入門的首選。
爬虫部分的學習,想看書的話,
Python2.7的話,看這本,用Python寫網路爬蟲 (豆瓣),16年8月出版的,不用擔心過時,很良心的一本書。由淺入深,一步步地帶你實現並完善一個爬蟲。
Python3的話,看這本,Python網路數據採集 (豆瓣),也是16年出版,同樣也是介紹的很全面的一本書,urllib,正則,BeautifulSoup,Requests,正則,Scrapy,資料庫等等你日後能用到的東西都講到了,還有數據清洗和自然語言處理等比較高級的知識。
不想看書,也可以直接看文檔:
20.5. urllib - Open arbitrary resources by URL - Python 2.7.13 documentation
Requests: HTTP for Humans
Beautiful Soup 4.2.0 文檔
Scrapy入門教程 - Scrapy 0.24.6 文檔
谷歌一搜一大堆,不會翻牆的話,百度搜也行。
額,收藏數是點贊數的三倍......
感覺寫的好,對你有幫助,就點個讚唄,別光只收藏哈.~( ̄▽ ̄)~
教程是python2.x的,應該是老教程了。Python的2.x分支版本在2020年將停止更新,同時,Python 3將被定為該語言的未來發展方向。還是學Python3打好基礎比較好。
我來給一下我的學習路線給題主參考一下吧:
基礎:Python 3教程發布( @廖雪峰 廖老師的教程挺易懂的,也很簡潔。不過聽說之前完全沒有編程語言學習基礎,在後面的章節會有點困難,基礎應該是沒問題的)
爬蟲:標籤 Crawler 下的文章 - xlzd雜談(這裡有 @xlzd 系列文章,入個門沒問題)
這裡有個今天看到的專欄文章:
知乎專欄(Python爬蟲|Python爬蟲入門(一):爬蟲基本結構簡單實例)
我沒看過,參考參考吧。
再就是多看看知乎里的答案了。
沒有本質差別。
知乎上有一大把應該學2還是3的問題。仔細想想,這類問題背後的假設是什麼呢?
- 2和3是兩種語言;
- 2和3之間很難相互遷移。
實際情況呢?滿打滿算,2和3之間的區別也不過幾十條,常見的就那麼幾個,比如編碼、print、except語句、除法等。所以2和3的遷移並不是那麼困難,更何況我們還有一堆兼容方案(不是本題重點,略)。
而只學一個可不可以?答案是肯定不可以,因為只懂2或者3你無法正常和社區交流。
那麼問題來了,先學哪個?如果你是要學爬蟲(或者說有明確的需求),那麼很簡單了,你用的教程是什麼版本,就跟著什麼版本做。之後有了需求,再去學別的版本的Python語法就可以了。如果需求不明確,那麼就看你打算用的入門教程是什麼版本的,跟著一起用就行了。
所以啊,不用再糾結了語言了,無論是Python、Java、JS還是VBA、Stata、Matlab、R,儘管上吧~加油~no module name http,Google之,http in py3.x,not in py2.x。........卒
原本我的爬蟲在2,後來為了非同步io遷移至了3.5,體驗下來好處有二
一是編碼不用考慮,全部utf-8
二是asyncio確實可以提高效率
3
先學這個Python語言程序設計_中國大學MOOC(慕課)
再學這個
&>&>Python 網路爬蟲與信息提取
http://www.icourse163.org/course/BIT-1001870001
&>&>Python 數據分析與展示
http://www.icourse163.org/course/BIT-1001870002
&>&>Python 機器學習應用
http://www.icourse163.org/course/BIT-1001872001
&>&>Python 科學計算三維可視化
http://www.icourse163.org/course/BIT-1001871001
&>&>Python 遊戲開發入門
http://www.icourse163.org/course/BIT-1001873001
&>&>Python 雲端系統開發入門
http://www.icourse163.org/course/BIT-1001871002
官方文檔翻譯:是python2還是python3
http://www.jianshu.com/p/567e94df368f
一句話:python2代表過去,python3代表現在,未來
python3 ,沒有這麼多編碼的麻煩。
如果學語言,Python2和3相差不大,也基本不存在學哪個的問題,肯定都需要了解。說學2還是3本身就沒這種說法。
從使用看,新項目優先用3,老項目原來用什麼就用什麼沒得選。一方面2再過幾年就不被支持了,同時作為初學者你要是用2,不被編解碼整得叫娘算你命大。
需要用什麼學什麼
如果純粹學習就學2
用的時候學也是很容易的
如果學不會2,那麼, 沒有然後了
初學者肯定先學python2,因為現在網上的各種爬蟲大多都是python2的,這樣就學習起來更加方便一點。
書籍的話, @草帽君 提到的兩本書我都買了,感覺不錯,可以系統的學習。當然你還可以關注網上大神的博客,有的就寫得比較好。
知乎上也有相關的專欄和文章,可以學習一下。
最後,無恥的附上我知乎關於爬蟲的收藏夾https://www.zhihu.com/collection/129856874
逃…
學2還是學3的區別感覺不太大,以前寫過一段時間,是用2寫的,沒用3寫過。。。所以找一個相關教程多一點的入手,先學基礎吧。
Python 2
之前也是因為想寫爬蟲才學的py
當時沒想那麼多...
覺得既然有新的當然學新的啦
於是學的是3.x
3,我自學那會兒也是2居多,但是只要原理搞明白了,3也不是問題
不用糾結版本,爬蟲嘛,就是用代碼來模擬瀏覽器瀏覽網頁。首先要明白http(s)吧,掌握get,post,以及網頁解析就能寫一些簡單的爬蟲了。如何對付反爬蟲,如何提高效率,寫到後面會自己找答案的。
因為基礎入門使用3.5,但興趣在爬蟲。想通過實例來快速入手爬蟲,可網上教程大多數基於2.X版本的,很糾結。
2,別問了…
推薦閱讀:
※2016 年美國大選的投票結果中,有哪些數據值得分析?
※如何高效地學好 R?
※Quant 如何運算百萬行的數據?
※數據分析師的具體工作職責和工作內容有哪些?
※大數據最核心的價值是什麼?