導航:首頁 > 編程語言 > effectivepython豆瓣

effectivepython豆瓣

發布時間:2023-01-26 12:49:08

python的推薦書籍有哪些

推薦的幾本Python入門自學到精通必看的書籍吧~

1、《「笨辦法」學Python》

為什麼把它作為推薦給Python入門自學者的第一本書?因為它足夠有趣吸引人。一開始我們都是憑著興趣學習的,如果在剛剛開始學習的時候,就看深奧難讀的書,很容易就從入門到放棄。而且這本書里每一章知識講完後,都會配有相應的練習小題,幫助初學者在學中練,練中學,進一步鞏固相關知識點。總之,這本書以習題的方式引導學習者一步一步學習編程,從簡單的列印一直講授到完整項目的實現,讓初學者從基礎的編程技術入手,最終體驗到軟體開發的基本過程。可以說,這本書是零基礎入門Python的不二之選!

2、《Python快速編程入門》

這本書是一本Python基礎教程,因此全部內容定位於Python的基本知識、語法、函數、面向對象等基礎性內容。在夯實基礎後,該書後一章設置了游戲開發的綜合訓練,幫助初學者更好掌握相關知識。除此之外,本書附有配套視頻、源代碼、習題、教學課件等資源。總之,

本書既可作為高等院校本、專科計算機相關專業的程序設計課程教材,也可作為Python編程基礎的學習教材,是一本適合廣大編程開發初學者的入門級教材。

3、《Python高手之路(第3版) 》

本書不適合零基礎學習者,適合有一定Python基礎的學習者閱讀。因為該書完全從實戰的角度出發,介紹了需要系統掌握的Python知識。更為難得的是,本書結合了Python在OpenStack中的應用進行講解,非常具有實戰指導意義。此外,本書還涉及了很多高級主題,如性能優化、插件化結構的設計與架構、Python
3的支持策略等。因此,本書適合初中級層次的Python程序員閱讀和參考。

4、《Python演算法教程》

本書最大的優點簡單概括起來就是知識點清晰,語言簡潔。書中用Python語言來講解演算法的分析和設計,主要關注經典的演算法,幫助讀者理解基本演算法問題和解決問題打下很好的基礎。本書概念和知識點講解清晰,語言簡潔,因此適合對Python演算法感興趣的初中級用戶閱讀和自學,也適合高等院校的計算機系學生作為參考教材來閱讀。

5、《Python核心編程(第3版)》

本書涵蓋了成為一名技術全面的Python開發人員所需的一切內容,因此是每個想要精通Python的工程師必須要學習和了解的內容。在本書中,Python開發人員兼企業培訓師Wesley
Chun會幫助學習者將Python技能提升到更高的水平。而且書中講解了應用開發相關的多個領域,可以幫助讀者立即應用到項目開發中。

6、《精通Python自然語言處理》

眾做周知,自然語言處理是計算語言學和人工智慧之中與人機交互相關的領域之一。本書是學習自然語言處理的一本綜合學習指南,該書介紹了如何用Python實現各種NLP任務,以幫助讀者創建基於真實生活應用的項目。全書共10章,分別涉及字元串操作、統計語言建模、形態學、詞性標注、語法解析、語義分析、情感分析、信息檢索、語篇分析和NLP系統評估等主題。本書適合熟悉Python語言並對自然語言處理開發有一定了解和興趣的讀者閱讀參考。

以上就是推薦的Python入門到精通的所有書籍,相信總有一本適合你。但想要快速入門Python開發,僅靠看書怎麼夠,畢竟編程最重要的就是練習。

對於Python開發有興趣的小夥伴們,不妨先從看看Python開發書籍開始入門!B站上有很多的Python教學視頻,從基礎到高級的都有,還挺不錯的,知識點講的很細致,還有完整版的學習路線圖。也可以自己去看看,下載學習試試。

② 學習python用什麼書

最受大家推崇的 Python 書籍有哪些?
GitHub上有一位叫皮埃爾·德·沃爾夫(Pierre de Wulf)的童鞋,通過以下方法,檢索到了25本網上引用最多的 Python 書籍。
檢索方法:
1.在搜索引擎檢索相關詞語;
2.爬蟲爬取檢索結果;
3.檢索結果去重;
4.根據頁面標題快速刪除不符條件的鏈接;
5.瀏覽器訪問鏈接,並通過CSS選擇器提取文章標題;
6.統計引用次數……(檢索方法的詳解版見文末傳送門)
一起看看都有哪些經典 Python 書吧~
希望這些經典的 Python 書籍能夠讓題主的 Python 學習之路更高效,更踏實!
1.《Python學習手冊(第4版)》

作者: [美] Mark Lutz
——內容簡介——
這本書全面、深入地介紹了 Python 語言,不管你是編程新手還是 Python 初學者,它將幫助你快速實現使用 Python 編寫高質量,且易於與其他語言和工具集成的代碼。本書每一章都是關於Python語言獨立的內容,並且帶有練習和測試,簡單易學,適合入門。
因為工作了經常要用到Python,才開始真正學習起來,可以說是目前市面上最好的Python技術書。
——豆瓣評價
2.《Python Cookbook 中文版(第 3 版)》

作者:[美]David Beazley, Brian K. Jones
——內容簡介——
這本獨特的「食譜」介紹了 Python 語言應用在各個領域中的使用技巧和方法,其主題涵蓋了數據結構和演算法,字元串和文本,迭代器和生成器,數據編碼與處理,模塊和包,網路和Web編程,並發,實用腳本和系統管理,測試、調試以及異常,C語言擴展等等內容。
每個「配方」均包含可立即在項目中使用的代碼示例,以及Python應用中常見的問題和通用的解決方案。非常適合具有一定編程基礎的Python程序員閱讀。
基礎階段所有的知識點結合起來就是一個項目。問題――解決方案――知識點。書寫(閱讀)邏輯與解決問題的邏輯是相反的。方法的使用,多寫多試就行了。個人學習會糾結概念和思想,而實際應用主要是例子和業務邏輯。
——豆瓣評價
3.《流暢的Python》

作者: [巴西] Luciano Ramalho
——內容簡介——
Python的簡單性可以使你快速提高生產力,但這通常意味著你沒有使用它所提供的一切。
本書致力於幫助Python開發人員挖掘這門語言及相關程序庫的優秀特性,避免重復勞動,同時寫出簡潔、流暢、易讀、易維護,並且具有地道Python風格的代碼。本書尤其深入探討了Python語言的高級用法,涵蓋數據結構、Python風格的對象、並行與並發,以及元編程等不同的方面。通過本書,Python程序員將全面學習如何精通Python 3。
對於想要擴充知識的中級和高級Python程序員來說,這本書是充滿了實用編程技巧的寶藏。
——Daniel Greenfeld 和 Audrey Roy Greenfeld,Two Scoops of Django 作者

流暢的Python

4.《Python編程:從入門到實踐》
作者: [美] Eric Matthes
——內容簡介——
本書是一本針對所有層次的 Python 讀者而作的 Python 入門書。
全書分兩部分:第一部分介紹用Python 編程所必須了解的基本概念,包括matplotlib、NumPy 和Pygal 等強大的Python 庫和工具介紹,以及列表、字典、if 語句、類、文件與異常、代碼測試等內容;第二部分將理論付諸實踐,講解如何開發三個項目,包括簡單的 Python 2D 游戲開發,如何利用數據生成互動式的信息圖,以及創建和定製簡單的 Web 應用,並幫讀者解決常見編程問題和困惑。
從編程小白的角度看,入門極佳。手把手教的感覺,卻絕不啰嗦。什麼叫入門書?一本書讀下來,行文上不卡殼,邏輯上不跳躍,讀者如爬樓梯,一步一步即可登樓。
——豆瓣讀者

5.《深入淺出Python(影印版)》
作者:Paul Barry
——內容簡介——
你是否想學習 Python 而不用費心地看手冊?
本書通過一種獨特的超越語法手冊的方式來幫助你學習Python。你將能夠快速掌握 Python 的基礎知識,然後擴展到持久化、異常處理、Web開發、SQLite、數據處理和Google應用引擎中去。你也將學會如何為 Android 編寫移動應用,這要感謝Python帶給你的強大能力。本書融合了完備的學習經驗,它將幫助你快速成為一名真正的 Python 程序員。
超贊的入門書!有趣,有序,有重點;通過對一個案例設計的逐漸豐富把許多知識點都帶了出來;涉及的應用面也很廣。不過內容不夠豐富,也不適合當作工具書來查閱。不過考慮到本系列圖書的定位,已經寫得真是超贊了!
——豆瓣評價
6.《Python編程快速上手》
作者: [美]Albert Sweigart
——內容簡介——
如果你花了數小時重命名文件或更新了數百個電子表格單元格,你就會知道像這樣的任務多麼繁瑣。 但是,如果可以讓你的計算機為你做這些事情呢?可能只用幾分鍾吧。
本書是一本面向實踐的Python編程實用指南。你將學習 Python 的基礎知識,並探索用 Python 豐富的模塊庫來執行任務,例如從網站上抓取數據,閱讀PDF和Word文檔以及自動執行單擊和鍵入任務等。
通過閱讀本書,讀者將學會利用強大的 Python 語言和工具,並且會體會到 Python 編程的快樂。
講的不錯。編程就是要邊看邊練,這本書值得一看。
——豆瓣評價

購買

7.《"笨辦法"學Python 3》
作者: [美] Zed A.Shaw
——內容簡介——
本書是一本 Python 入門書籍。作者 Zed Shaw 完善了這個堪稱世上最好的 Python 學習系統。只要跟著學習,你就會和迄今為止數十萬 Zed 教過的初學者一樣獲得成功。
這本書以習題的方式引導讀者一步一步學習編程,從簡單的列印一直講到完整項目的實現,讓初學者從基礎的編程技術入手,最終體驗到軟體開發的基本過程。你將學會怎樣閱讀、編寫、思考代碼,以及如何用專業程序員的技巧來找出並修正錯誤。
從現在開始,當你犯錯時,請在紙上寫下你犯了什麼樣的錯誤。當你進行下一個練習時,請查看你上一次犯的錯誤,並盡量不要在新的錯誤中犯錯。
——引自章節:練習7:更多印刷

8.《利用Python進行數據分析》
作者:Wes McKinney
——內容簡介——
本書由 Python pandas 項目創始人 Wes McKinney 親筆撰寫,詳細介紹利用 Python 進行操作、處理、清洗和規整數據等方面的具體細節和基本要點。雖然「數據分析」是本書的標題,但重點是Python編程,庫和工具,而不是數據分析方法。這是數據分析所需的 Python 編程。
工具書,快速略讀。挺好的。有需求再仔細翻。
——豆瓣評價
9.《Effective Python:編寫高質量 Python 代碼的59個有效方法》
作者: [美]布雷特·斯拉特金(Brett Slatkin)
——內容簡介——
用 Python 編寫程序是相當容易的,所以這門語言非常流行。但若想掌握 Python 所特有的優勢、魅力和表達能力,則相當困難,而且語言中還有很多隱藏的陷阱,容易令開發者犯錯。本書可以幫你掌握真正的 Pythonic 編程方式,令你能夠完全發揮出 Python 語言的強大功能,並寫出健壯而高效的代碼。
python進階的書,雖然很薄但是很有收獲。
——豆瓣評價
10.《像計算機科學家一樣思考Python (第2版)》

作者: [美] 艾倫 B. 唐尼
——內容簡介——
本書以培養讀者以計算機科學家一樣的思維方式來理解Python語言編程。貫穿全書的主體是如何思考、設計,以及開發的方法。
全書詳細介紹了 Python 編程語言的方方面面,從基本的編程概念到函數,遞歸,數據結構和面向對象編程等等。每一章都配有術語表和練習題,方便讀者鞏固所學的知識和技巧。此外,作者針對每章所專注的語言特性,或者相關的開發問題,總結了調試的方方面面。
非常好的 Python 入門書,即使對編程一無所知的人也能相對容易地讀懂,有編程基礎自不必說,可以很快地讀完。
——豆瓣評價

11.《深入理解Python特性》
作者:[德]達恩·巴德爾(Dan Bader)
——內容簡介——
這本書將通過簡單的示例和分步說明來介紹 Python 的最佳實踐以及 Python 代碼的強大魅力。藉助本書,你將專注於真正重要的實踐技能,在 Python 的標准庫中發現「隱藏的金子」,距離精通 Python 更近一步!
茴字的四種寫法不是沒有用的;對語言了解的越多,用起來越順。
——豆瓣評價

12.Python Machine Learning
作者:[美]Sebastian Raschka, Vahid Mirjalili
——內容簡介——
本書是關於使用 Python 進行機器學習和深度學習的綜合指南。 它既是分步教程,又是構建機器學習系統時不斷翻閱的參考書。
本書包含清晰的注釋,可視化效果和工作示例,深入介紹了基本上所有的機器學習技術。 雖然有些書只教您遵循說明,但在本書中,作者講授了機器學習的原理,這使你可以自己構建模型和應用程序。
13.Dive Into Python 3
作者: Mark Pilgrim
——內容簡介——
有很多 python 開發人員需要學習將代碼移植到python 3,而本書是為他們提供最新版本 python 介紹的最佳書籍。它獨特的風格是先提供大量代碼然後將其分解,非常適合希望快速了解新版本語言的現有開發人員。
重新翻看這本書,我真的認為它不是一個很好的入門選擇,但是本入門後值得讀的書。
——豆瓣評價
14.《Python參考手冊(第4版)》
作者: [美] David M.Beazley
——內容簡介——
本書是 Python 編程語言的權威參考指南,內容涉及核心 Python 語言和 Python 庫的最重要部分,內容簡潔扼要、可讀性強。書中還包括了一些沒有在 Python 官方文檔或其他資料中出現過的一些高級主題的詳細信息。
這一版在內容上進行了全面更新,介紹了 Python 2.6 和 Python 3 新引入的編程語言特性和庫模塊,同時還分析了Python程序員面臨的如下難題:是應繼續使用現有的 Python 代碼,還是應制定計劃將其移植到Python 3?
很好的參考手冊,對於新手來說,常用的庫都有涉及,推薦常備手邊。
——豆瓣評價

15.《Python編程(第4版)》
作者: 盧茨 (Mark Lutz)
——內容簡介——
當掌握 Python 的基礎知識後,你要如何使用 Python?本書為這門語言的主要應用領域提供了深度教程,譬如系統管理、GUI 和 Web,並探索了其在資料庫、網路、前端腳本、文本處理等方面的應用。你將學到清晰、簡潔明了的語法和編程技巧,並伴隨大量的示例來展示正確的用法和慣例。
適合有經驗的程序員看, 涉及范圍很廣, 內容偏高級。
——豆瓣評價
16.《 Python 機器學習基礎教程》
作者: [德]安德里亞斯·穆勒,[美]莎拉·吉多
——內容簡介——
本書是機器學習入門書,以 Python 語言介紹。
書中重點討論機器學習演算法的實踐而不是背後的數學,全面涵蓋在實踐中實現機器學習演算法的所有重要內容,幫助讀者使用 Python 和 scikit-learn 庫一步一步構建一個有效的機器學習應用。
本書將向所有對機器學習技術感興趣的初學者展示,自己動手構建機器學習解決方案並非難事!
機器學習的入門書,通過這本書可以對機器學習建立感性認識。如果只是學習機器學習的理論推導,無法深刻理解各種數據處理方法帶來的效果,通過Scikit-Learn和這本書可以快速建立起這種理解。
——豆瓣評價

17.Python in a Nutshell
作者: [美] Alex Martelli,Anna Ravenscroft,Steve Holden
——內容簡介——
本書適合具有一定 Python 編程經驗或者有其他語言編程基礎的程序員閱讀,它涵蓋了廣泛的應用領域,包括 Web和網路編程,XML處理,資料庫交互以及高速數值計算。該實用手冊的第三版提供了對該語言的快速參考(包括Python 3.5、2.7和3.6的亮點)。
對於涉及到的內部機制有一定的詳細闡述而不是像很多入門書籍和大全書籍那樣只有應用。對於想要透過表象更深入了解 Python 的讀者,該書是一本很好的入門讀物。
——豆瓣評價
18.《Python游戲編程快速上手(第4版)》
作者: [美] Al Sweigart
——內容簡介——
本書通過編寫一個個小巧、有趣的游戲來教授Python編程,並且採用直接展示游戲的源代碼並通過實例來解釋編程的原理的方式。首先構建 猜數字 和 Tic Tac Toe 這樣的經典游戲,然後逐步開發更高級的游戲,在此過程中,你將學習關鍵的編程和數學概念,這將幫助你在輕松有趣的過程中,掌握 Python 游戲編程的基本技能。
全書共21章,12個游戲程序和示例貫穿其中,介紹了Python基礎知識、數據類型、函數、流程式控制制、程序調試、流程圖設計、字元串操作、列表和字典、笛卡爾坐標系、密碼學基礎、游戲AI模擬、動畫圖形、碰撞檢測、聲音和圖像等方方面面的程序設計知識。
與一般的編程入門書不同,本書以練代學,在一個個小的游戲項目中逐步熟悉並掌握基本的python編程方法,有趣有效。
——豆瓣評價

19.《Python袖珍指南》
作者:Mark Lutz
——內容簡介——
對於新的Python 3.4 和 2.7 而言,這款便捷的袖珍指南是完美的實戰快速參考書。你將會從中學習有關Python類型和語句,特殊方法名,內建函數與異常,常用的標准庫模塊及其他卓越的Python工具。
當做隨身備忘手冊吧,畢竟健忘。
——豆瓣評論
20.《Python編程之美:最佳實踐指南》

作者:[美] Kenneth Reitz,Tanya Schlusser
——內容簡介——
本書是 Python 用戶的一本網路式學習指南,本書由 Python 社區的大神 Kenneth Reitz 發起並組織編寫,由社區數百名開發者集體奉獻。其特色在於,近乎完整地總結了在 Python 編程中會用到的各種實踐技巧和經驗,涵蓋眾多主流的應用場景,並告訴你如何提高效率、避免踩坑、編寫高質量的代碼。
本書著重於可重用的代碼,重於設計理念,將讀者引向已存在的優秀資源,適合有一定Python基礎的人員學習,幫助你迅速從小工修煉成專家,編寫出高質量的代碼!

③ 《編寫高質量 Python代碼的59個有效方法》txt下載在線閱讀全文,求百度網盤雲資源

《Effective Python》(布雷特·斯拉特金(Brett Slatkin))電子書網盤下載免費在線閱讀

鏈接: https://pan..com/s/1FFAaagdlCWx1DjmfI77rJQ

提取碼: umvs

書名:Effective Python

作者:布雷特·斯拉特金(Brett Slatkin)

譯者:愛飛翔

豆瓣評分:9.0

出版社:機械工業出版社

出版年份:2016-1

頁數:210

內容簡介:

用Python編寫程序,是相當容易的,所以這門語言非常流行。但若想掌握Python所特有的優勢、魅力和表達能力,則相當困難,而且語言中還有很多隱藏的陷阱,容易令開發者犯錯。

本書可以幫你掌握真正的Pythonic編程方式,令你能夠完全發揮出Python語言的強大功能,並寫出健壯而高效的代碼。Scott Meyers在暢銷書《Effective C++》中開創了一種以使用場景為主導的精練教學方式,本書作者Brett Slatkin就以這種方式匯聚了59條優秀的實踐原則、開發技巧和便捷方案,並以實用的代碼範例來解釋它們。

Slatkin根據自己在Google公司多年開發Python基礎架構所積累的經驗,揭示Python語言中一些鮮為人知的微妙特性,並給出了能夠改善代碼功能及運行效率的習慣用法。通過本書,你能夠了解到解決關鍵編程任務所用的最佳方式,並學會編寫易於理解、便於維護且利於改進的代碼。

作者簡介:

Google高級軟體工程師Brett Slatkin融合自己多年Python開發實戰經驗,深入探討編寫高質量Python代碼的技巧、禁忌和最佳實踐。

涵蓋Python3.x和Python2.x主要應用領域,匯聚59條優秀實踐原則、開發技巧和便捷方案,包含大量實用範例代碼。

④ Python抓取豆瓣電影排行榜

1.觀察url
首先觀察一下網址的結構 http://movie.douban.com/top250?start=0&filter=&type= :
可以看到,問號?後有三個參數 start、filter、type,其中start代表頁碼,每頁展示25部電影,0代表第一頁,以此類推25代表第二頁,50代表第三頁...
filter顧名思義,是過濾已經看過的電影,filter和type在這里不重要,可以不管。
2.查看網頁源代碼
打開上面的網址,查看源代碼,可以看到信息的展示結構如下:
1 <ol class="grid_view"> 2 <li> 3 <div class="item"> 4 <div class="pic"> 5 <em class="">1</em> 6 <a href="http://movie.douban.com/subject/1292052/"> 7 <img alt="肖申克的救贖" src="http://img3.douban.com/view/movie_poster_cover/ipst/public/p480747492.jpg" class=""> 8 </a> 9 </div>10 <div class="info">11 <div class="hd">12 <a href="http://movie.douban.com/subject/1292052/" class="">13 <span class="title">肖申克的救贖</span>14 <span class="title"> / The Shawshank Redemption</span>15 <span class="other"> / 月黑高飛(港) / 刺激1995(台)</span>16 </a>17 18 19 <span class="playable">[可播放]</span>20 </div>21 <div class="bd">22 <p class="">23 導演: 弗蘭克·德拉邦特 Frank Darabont 主演: 蒂姆·羅賓斯 Tim Robbins /...<br>24 1994 / 美國 / 犯罪 劇情25 </p>26 27 28 <div class="star">29 <span class="rating5-t"><em>9.6</em></span>30 <span>646374人評價</span>31 </div>32 33 <p class="quote">34 <span class="inq">希望讓人自由。</span>35 </p>36 </div>37 </div>38 </div>39 </li>
其中<em class="">1</em>代表排名,<span class="title">肖申克的救贖</span>代表電影名,其他信息的含義也很容易能看出來。
於是接下來可以寫正則表達式:
1 pattern = re.compile(u'<div.*?class="item">.*?<div.*?class="pic">.*?' 2 + u'<em.*?class="">(.*?)</em>.*?' 3 + u'<div.*?class="info">.*?<span.*?class="title">(.*?)' 4 + u'</span>.*?<span.*?class="title">(.*?)</span>.*?' 5 + u'<span.*?class="other">(.*?)</span>.*?</a>.*?' 6 + u'<div.*?class="bd">.*?<p.*?class="">.*?' 7 + u'導演: (.*?) ' 8 + u'主演: (.*?)<br>' 9 + u'(.*?) / (.*?) / '10 + u'(.*?)</p>'11 + u'.*?<div.*?class="star">.*?<em>(.*?)</em>'12 + u'.*?<span>(.*?)人評價</span>.*?<p.*?class="quote">.*?'13 + u'<span.*?class="inq">(.*?)</span>.*?</p>', re.S)
在此處flag參數re.S代表多行匹配。
3.使用面向對象的設計模式編碼
代碼如下:
1 # -*- coding:utf-8 -*- 2 __author__ = 'Jz' 3 import urllib2 4 import re 5 import sys 6 7 class MovieTop250: 8 def __init__(self): 9 #設置默認編碼格式為utf-810 reload(sys)11 sys.setdefaultencoding('utf-8')12 self.start = 013 self.param = '&filter=&type='14 self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64)'}15 self.movieList = []16 self.filePath = 'D:/coding_file/python_file/File/DoubanTop250.txt'17 18 def getPage(self):19 try:20 URL = 'http://movie.douban.com/top250?start=' + str(self.start)21 request = urllib2.Request(url = URL, headers = self.headers)22 response = urllib2.urlopen(request)23 page = response.read().decode('utf-8')24 pageNum = (self.start + 25)/2525 print '正在抓取第' + str(pageNum) + '頁數據...' 26 self.start += 2527 return page28 except urllib2.URLError, e:29 if hasattr(e, 'reason'):30 print '抓取失敗,具體原因:', e.reason31 32 def getMovie(self):33 pattern = re.compile(u'<div.*?class="item">.*?<div.*?class="pic">.*?'34 + u'<em.*?class="">(.*?)</em>.*?'35 + u'<div.*?class="info">.*?<span.*?class="title">(.*?)'36 + u'</span>.*?<span.*?class="title">(.*?)</span>.*?'37 + u'<span.*?class="other">(.*?)</span>.*?</a>.*?'38 + u'<div.*?class="bd">.*?<p.*?class="">.*?'39 + u'導演: (.*?) '40 + u'主演: (.*?)<br>'41 + u'(.*?) / (.*?) / '42 + u'(.*?)</p>'43 + u'.*?<div.*?class="star">.*?<em>(.*?)</em>'44 + u'.*?<span>(.*?)人評價</span>.*?<p.*?class="quote">.*?'45 + u'<span.*?class="inq">(.*?)</span>.*?</p>', re.S)46 while self.start <= 225:47 page = self.getPage()48 movies = re.findall(pattern, page)49 for movie in movies:50 self.movieList.append([movie[0], movie[1], movie[2].lstrip(' / '),
51 movie[3].lstrip(' / '), movie[4],
52 movie[5], movie[6].lstrip(), movie[7], movie[8].rstrip(),53 movie[9], movie[10], movie[11]])54 55 def writeTxt(self):56 fileTop250 = open(self.filePath, 'w')57 try:58 for movie in self.movieList:59 fileTop250.write('電影排名:' + movie[0] + '\r\n')60 fileTop250.write('電影名稱:' + movie[1] + '\r\n')61 fileTop250.write('外文名稱:' + movie[2] + '\r\n')62 fileTop250.write('電影別名:' + movie[3] + '\r\n')63 fileTop250.write('導演姓名:' + movie[4] + '\r\n')64 fileTop250.write('參與主演:' + movie[5] + '\r\n')65 fileTop250.write('上映年份:' + movie[6] + '\r\n')66 fileTop250.write('製作國家/地區:' + movie[7] + '\r\n')67 fileTop250.write('電影類別:' + movie[8] + '\r\n')68 fileTop250.write('電影評分:' + movie[9] + '\r\n')69 fileTop250.write('參評人數:' + movie[10] + '\r\n')70 fileTop250.write('簡短影評:' + movie[11] + '\r\n\r\n')71 print '文件寫入成功...'72 finally:73 fileTop250.close()74 75 def main(self):76 print '正在從豆瓣電影Top250抓取數據...'77 self.getMovie()78 self.writeTxt()79 print '抓取完畢...'80 81 DouBanSpider = MovieTop250()82 DouBanSpider.main()

代碼比較簡單,最後將信息寫入一個文件,沒有什麼需要解釋的地方。

⑤ 如何用python爬取豆瓣讀書的數據

這兩天爬了豆瓣讀書的十萬條左右的書目信息,用時將近一天,現在趁著這個空閑把代碼總結一下,還是菜鳥,都是用的最簡單最笨的方法,還請路過的大神不吝賜教。
第一步,先看一下我們需要的庫:

import requests #用來請求網頁
from bs4 import BeautifulSoup #解析網頁
import time #設置延時時間,防止爬取過於頻繁被封IP號
import re #正則表達式庫
import pymysql #由於爬取的數據太多,我們要把他存入MySQL資料庫中,這個庫用於連接資料庫
import random #這個庫里用到了產生隨機數的randint函數,和上面的time搭配,使爬取間隔時間隨機

這個是豆瓣的網址:x-sorttags-all
我們要從這里獲取所有分類的標簽鏈接,進一步去爬取裡面的信息,代碼先貼上來:

import requests
from bs4 import BeautifulSoup #導入庫

url="httom/tag/?icn=index-nav"
wb_data=requests.get(url) #請求網址
soup=BeautifulSoup(wb_data.text,"lxml") #解析網頁信息
tags=soup.select("#content > div > div.article > div > div > table > tbody > tr > td > a")
#根據CSS路徑查找標簽信息,CSS路徑獲取方法,右鍵-檢查- selector,tags返回的是一個列表
for tag in tags:
tag=tag.get_text() #將列表中的每一個標簽信息提取出來
helf="hom/tag/"
#觀察一下豆瓣的網址,基本都是這部分加上標簽信息,所以我們要組裝網址,用於爬取標簽詳情頁
url=helf+str(tag)
print(url) #網址組裝完畢,輸出

以上我們便爬取了所有標簽下的網址,我們將這個文件命名為channel,並在channel中創建一個channel字元串,放上我們所有爬取的網址信息,等下爬取詳情頁的時候直接從這里提取鏈接就好了,如下:

channel='''
tag/程序
'''

現在,我們開始第二個程序。


QQ圖片20160915233329.png


標簽頁下每一個圖片的信息基本都是這樣的,我們可以直接從這里提取到標題,作者,出版社,出版時間,價格,評價人數,以及評分等信息(有些外國作品還會有譯者信息),提取方法與提取標簽類似,也是根據CSS路徑提取。
我們先用一個網址來實驗爬取:

url="htt/tag/科技"
wb_data = requests.get(url)
soup = BeautifulSoup(wb_data.text.encode("utf-8"), "lxml")
tag=url.split("?")[0].split("/")[-1] #從鏈接裡面提取標簽信息,方便存儲
detils=soup.select("#subject_list > ul > li > div.info > div.pub") #抓取作者,出版社信息,稍後我們用spite()函數再將他們分離出來
scors=soup.select("#subject_list > ul > li > div.info > div.star.clearfix > span.rating_nums") #抓取評分信息
persons=soup.select("#subject_list > ul > li > div.info > div.star.clearfix > span.pl") #評價人數
titles=soup.select("#subject_list > ul > li > div.info > h2 > a") #書名
#以上抓取的都是我們需要的html語言標簽信息,我們還需要將他們一一分離出來
for detil,scor,person,title in zip(detils,scors,persons,titles):
#用一個zip()函數實現一次遍歷
#因為一些標簽中有譯者信息,一些標簽中沒有,為避免錯誤,所以我們要用一個try來把他們分開執行
try:
author=detil.get_text().split("/",4)[0].split()[0] #這是含有譯者信息的提取辦法,根據「/」 把標簽分為五部分,然後依次提取出來
yizhe= detil.get_text().split("/", 4)[1]
publish=detil.get_text().split("/", 4)[2]
time=detil.get_text().split("/", 4)[3].split()[0].split("-")[0] #時間我們只提取了出版年份
price=ceshi_priceone(detil) #因為價格的單位不統一,我們用一個函數把他們換算為「元」
scoe=scor.get_text() if True else "" #有些書目是沒有評分的,為避免錯誤,我們把沒有評分的信息設置為空
person=ceshi_person(person) #有些書目的評價人數顯示少於十人,爬取過程中會出現錯誤,用一個函數來處理
title=title.get_text().split()[0]
#當沒有譯者信息時,會顯示IndexError,我們分開處理
except IndexError:
try:
author=detil.get_text().split("/", 3)[0].split()[0]
yizhe="" #將detil信息劃分為4部分提取,譯者信息直接設置為空,其他與上面一樣
publish=detil.get_text().split("/", 3)[1]
time=detil.get_text().split("/", 3)[2].split()[0].split("-")[0]
price=ceshi_pricetwo(detil)
scoe=scor.get_text() if True else ""
person=ceshi_person(person)
title=title.get_text().split()[0]
except (IndexError,TypeError):
continue
#出現其他錯誤信息,忽略,繼續執行(有些書目信息下會沒有出版社或者出版年份,但是數量很少,不影響我們大規模爬取,所以直接忽略)
except TypeError:
continue

#提取評價人數的函數,如果評價人數少於十人,按十人處理
def ceshi_person(person):
try:
person = int(person.get_text().split()[0][1:len(person.get_text().split()[0]) - 4])
except ValueError:
person = int(10)
return person

#分情況提取價格的函數,用正則表達式找到含有特殊字元的信息,並換算為「元」
def ceshi_priceone(price):
price = detil.get_text().split("/", 4)[4].split()
if re.match("USD", price[0]):
price = float(price[1]) * 6
elif re.match("CNY", price[0]):
price = price[1]
elif re.match("A$", price[0]):
price = float(price[1:len(price)]) * 6
else:
price = price[0]
return price
def ceshi_pricetwo(price):
price = detil.get_text().split("/", 3)[3].split()
if re.match("USD", price[0]):
price = float(price[1]) * 6
elif re.match("CNY", price[0]):
price = price[1]
elif re.match("A$", price[0]):
price = float(price[1:len(price)]) * 6
else:
price = price[0]
return price

實驗成功後,我們就可以爬取數據並導入到資料庫中了,以下為全部源碼,特殊情況會用注釋一一說明。

import requests
from bs4 import BeautifulSoup
import time
import re
import pymysql
from channel import channel #這是我們第一個程序爬取的鏈接信息
import random

def ceshi_person(person):
try:
person = int(person.get_text().split()[0][1:len(person.get_text().split()[0]) - 4])
except ValueError:
person = int(10)
return person

def ceshi_priceone(price):
price = detil.get_text().split("/", 4)[4].split()
if re.match("USD", price[0]):
price = float(price[1]) * 6
elif re.match("CNY", price[0]):
price = price[1]
elif re.match("A$", price[0]):
price = float(price[1:len(price)]) * 6
else:
price = price[0]
return price

def ceshi_pricetwo(price):
price = detil.get_text().split("/", 3)[3].split()
if re.match("USD", price[0]):
price = float(price[1]) * 6
elif re.match("CNY", price[0]):
price = price[1]
elif re.match("A$", price[0]):
price = float(price[1:len(price)]) * 6
else:
price = price[0]
return price


#這是上面的那個測試函數,我們把它放在主函數中
def mains(url):
wb_data = requests.get(url)
soup = BeautifulSoup(wb_data.text.encode("utf-8"), "lxml")
tag=url.split("?")[0].split("/")[-1]
detils=soup.select("#subject_list > ul > li > div.info > div.pub")
scors=soup.select("#subject_list > ul > li > div.info > div.star.clearfix > span.rating_nums")
persons=soup.select("#subject_list > ul > li > div.info > div.star.clearfix > span.pl")
titles=soup.select("#subject_list > ul > li > div.info > h2 > a")
for detil,scor,person,title in zip(detils,scors,persons,titles):
l = [] #建一個列表,用於存放數據
try:
author=detil.get_text().split("/",4)[0].split()[0]
yizhe= detil.get_text().split("/", 4)[1]
publish=detil.get_text().split("/", 4)[2]
time=detil.get_text().split("/", 4)[3].split()[0].split("-")[0]
price=ceshi_priceone(detil)
scoe=scor.get_text() if True else ""
person=ceshi_person(person)
title=title.get_text().split()[0]
except IndexError:
try:
author=detil.get_text().split("/", 3)[0].split()[0]
yizhe=""
publish=detil.get_text().split("/", 3)[1]
time=detil.get_text().split("/", 3)[2].split()[0].split("-")[0]
price=ceshi_pricetwo(detil)
scoe=scor.get_text() if True else ""
person=ceshi_person(person)
title=title.get_text().split()[0]
except (IndexError,TypeError):
continue

except TypeError:
continue
l.append([title,scoe,author,price,time,publish,person,yizhe,tag])
#將爬取的數據依次填入列表中


sql="INSERT INTO allbooks values(%s,%s,%s,%s,%s,%s,%s,%s,%s)" #這是一條sql插入語句
cur.executemany(sql,l) #執行sql語句,並用executemary()函數批量插入資料庫中
conn.commit()

#主函數到此結束


# 將Python連接到MySQL中的python資料庫中
conn = pymysql.connect( user="root",password="123123",database="python",charset='utf8')
cur = conn.cursor()

cur.execute('DROP TABLE IF EXISTS allbooks') #如果資料庫中有allbooks的資料庫則刪除
sql = """CREATE TABLE allbooks(
title CHAR(255) NOT NULL,
scor CHAR(255),
author CHAR(255),
price CHAR(255),
time CHAR(255),
publish CHAR(255),
person CHAR(255),
yizhe CHAR(255),
tag CHAR(255)
)"""
cur.execute(sql) #執行sql語句,新建一個allbooks的資料庫


start = time.clock() #設置一個時鍾,這樣我們就能知道我們爬取了多長時間了
for urls in channel.split():
urlss=[urls+"?start={}&type=T".format(str(i)) for i in range(0,980,20)] #從channel中提取url信息,並組裝成每一頁的鏈接
for url in urlss:
mains(url) #執行主函數,開始爬取
print(url) #輸出要爬取的鏈接,這樣我們就能知道爬到哪了,發生錯誤也好處理
time.sleep(int(format(random.randint(0,9)))) #設置一個隨機數時間,每爬一個網頁可以隨機的停一段時間,防止IP被封
end = time.clock()
print('Time Usage:', end - start) #爬取結束,輸出爬取時間
count = cur.execute('select * from allbooks')
print('has %s record' % count) #輸出爬取的總數目條數

# 釋放數據連接
if cur:
cur.close()
if conn:
conn.close()

這樣,一個程序就算完成了,豆瓣的書目信息就一條條地寫進了我們的資料庫中,當然,在爬取的過程中,也遇到了很多問題,比如標題返回的信息拆分後中會有空格,寫入資料庫中會出現錯誤,所以只截取了標題的第一部分,因而導致資料庫中的一些書名不完整,過往的大神如果有什麼辦法,還請指教一二。
等待爬取的過程是漫長而又欣喜的,看著電腦上一條條信息被刷出來,成就感就不知不覺湧上心頭;然而如果你吃飯時它在爬,你上廁所時它在爬,你都已經爬了個山回來了它還在爬時,便會有點崩潰了,擔心電腦隨時都會壞掉(還是窮學生換不起啊啊啊啊~)
所以,還是要好好學學設置斷點,多線程,以及正則,路漫漫其修遠兮,吾將上下而求索~共勉~

⑥ Python入門書籍推薦

來源:酷瓜書單

1. 《Python基礎教程》 豆瓣評分:8
python最快的入門是直接看 docs.python.org/tutorial/, 系統學習的話,這本書不錯。

2. 《Python學習手冊》 豆瓣評分:8
非常全的一個工具書。建議先大致的看完,然後再根據實際使用去某個章節細讀。

3. 《Python 3程序開發指南》 豆瓣評分:8
此書深入淺出,適合python初學者學習。書中的內容包含了進行python編程的所有知識,實例經典

4. 《Python源碼剖析》 豆瓣評分:8
國內稱得上「著」的書不多,這本書不但是著,而是著得不錯。

5. 《Python編程(第三版·英文影印版)》 豆瓣評分:8
大而全的一本書,但是個人覺得它的選題很廣,但是都不深入;雖然讀起來很輕松,但是廢話較多;還有就是GUI的篇幅太多,而我又基本不用GUI... 總體來說,和以前讀Core Java的感覺比較接近,適合初學者循序漸進。

⑦ 學python推薦的10本豆瓣高分書單,小白到大佬,沒看過太可惜了

前言:我自己整理了幾本書籍的電子檔,需要的可以私信我 「書籍」 免費領取

本書一共12章,每一章都會用一個完整的 游戲 來演示其中的關鍵知識點,並通過編寫好玩的小軟體這種方式來學習編程,引發讀者的興趣,降低學習的難度。每章最後都會對該章的知識點進行小結,還會給出一些小練習讓讀者試試身手。作者很巧妙的將所有編程知識嵌入到了這些例子中,真正做到了寓教於樂。

《Python編程初學者指南》內容淺顯易懂,示例輕松活潑,是國際暢銷的Python初學者教程,適合對Python感興趣的初級和中級讀者。

二,Python編程快速上手

本書是一本面向實踐的Python編程實用指南。這本書不僅是介紹Python語言的基礎知識,而且還通過項目實踐教會讀者如何應用這些知識和技能。 書的首部分介紹了基本Python編程概念,第二部分介紹了一些不同的任務,通過編寫Python程序,可以讓計算機自動完成它們。第二部分的每一章都有一些項目程序,供讀者學習。每章的末尾還提供了一些習題和深入的實踐項目,幫助讀者鞏固所學的知識。附錄部分提供了所有習題的解答。

本書適合缺乏編程基礎的初學者。通過閱讀本書,讀者將能利用強大的編程語言和工具,並且會體會到Python編程的快樂。

三,Python編程快速上手(第2版)

在本書中,你將學習利用Python編程在幾分鍾內完成手動需要幾小時的工作,無須事先具備編程經驗。通過閱讀本書,你會學習Python的基本知識, 探索 Python豐富的模塊庫,並完成特定的任務(例如,從網站抓取數據,讀取PDF和Word文檔等)。本書還包括有關輸入驗證的實現方法,以及自動更新CSV文件的技巧。一旦掌握了編程的基礎知識,你就可以毫不費力地創建Python程序,自動化地完成很多繁瑣的工作,包括:

① 在一個文件或多個文件中搜索並保存同類文本;

② 創建、更新、移動和重命名成百上千個文件和文件夾

③ 下載搜索結果和處理Web在線內容;

④ 快速地批量化處理電子表格;

⑤ 拆分、合並PDF文件,以及為其加水印和加密

⑥ 向特定人群發送提醒郵件和文本通知;

⑦ 同時裁剪、調整、編輯成千上萬張圖片。

四,Python編程

本書是一本針對所有層次的Python 讀者而作的Python 入門書。全書分兩部分:第一部分介紹用Python 編程所必須了解的基本概念,包括matplotlib、NumPy 和Pygal 等強大的Python 庫和工具介紹,以及列表、字典、if 語句、類、文件與異常、代碼測試等內容;第二部分將理論付諸實踐,講解如何開發三個項目,包括簡單的Python 2D 游戲 開發如何利用數據生成互動式的信息圖,以及創建和定製簡單的Web 應用,並幫讀者解決常見編程問題和困惑。

五,Python編程(第2版)

本書是針對所有層次Python讀者而作的Python入門書。全書分兩部分:第一部分介紹用Python編程所必須了解的基本概念,包括Matplotlib等強大的Python庫和工具,以及列表、字典、if語句、類、文件與異常、代碼測試等內容;第二部分將理論付諸實踐,講解如何開發三個項目,包括簡單的2D 游戲 、利用數據生成互動式的信息圖以及創建和定製簡單的Web應用,並幫助讀者解決常見編程問題和困惑。

第2版進行了全面修訂,簡化了Python安裝流程,新增了f字元串、get()方法等內容,並且在項目中使用了Plotly庫以及新版本的Django和Bootstrap,等等。

六,Python深度學習

本書由Keras之父、現任Google人工智慧研究員的弗朗索瓦•肖萊(François Chollet)執筆,詳盡介紹了用Python和Keras進行深度學習的 探索 實踐,涉及計算機視覺、自然語言處理、生成式模型等應用。書中包含30多個代碼示例,步驟講解詳細透徹。由於本書立足於人工智慧的可達性和大眾化,讀者無須具備機器學習相關背景知識即可展開閱讀。在學習完本書後,讀者將具備搭建自己的深度學習環境、建立圖像識別模型、生成圖像和文字等能力。

七,Python極客項目編程

本書包含了一組富有想像力的編程項目,它們將引導你用Python 來製作圖像和音樂、模擬現實世界的現象,並與Arino 和樹莓派這樣的硬體進行交互。你將學習使用常見的Python 工具和庫,如numpy、matplotlib 和pygame等等。

八,Python神經網路編程

本書揭示神經網路背後的概念,並介紹如何通過Python實現神經網路。全書分為3章和兩個附錄。第1章介紹了神經網路中所用到的數學思想。第2章介紹使用Python實現神經網路,識別手寫數字,並測試神經網路的性能。第3章帶領讀者進一步了解簡單的神經網路,觀察已受訓練的神經網路內部,嘗試進一步改善神經網路的性能,並加深對相關知識的理解。附錄分別介紹了所需的微積分知和樹莓派知識。

本書適合想要從事神經網路研究和 探索 的讀者學習參考,也適合對人工智慧、機器學習和深度學習等相關領域感興趣的讀者閱讀。

九,趣學ython編程

《趣學python編程》是一本輕松、快速掌握python編程的入門讀物。全書分為3部分,共18章。第1部分是第1章到第12章,介紹python編程基礎知識,包括python的安裝和配置、變數、字元串、列表、元組和字典、條件語句、循環語句函數和模塊、類、內建函數和繪圖,等等。第2部分是第13章和第14章,介紹如何用python開發實例 游戲 彈球。第3部分包括第15章到第18章,介紹了火柴人實例 游戲 的開發過程。

這本書語言輕松,通俗易懂,講解由淺入深,力求將讀者閱讀和學習的難度降到最低。任何對計算機編程有興趣的人或者首次接觸編程的人,不論孩子還是成人,都可以通過閱讀本書來學習python編程。

十,Python網路編程(第3版)

本書針對想要深入理解使用Python來解決網路相關問題或是構建網路應用程序的技術人員,結合實例講解了網路協議、網路數據及錯誤、電子郵件、伺服器架構和HTTP及Web應用程序等經典話題。具體內容包括:全面介紹Python3中最新提供的SSL支持,非同步I/O循環的編寫,用Flask框架在Python代碼中配置URL,跨站腳本以及跨站請求偽造攻擊網站的原理及保護方法,等等。

閱讀全文

與effectivepython豆瓣相關的資料

熱點內容
安卓如何恢復蘋果設置 瀏覽:858
盛勢txt 瀏覽:769
兩只狼老大和一個小嬰兒是什麼電影 瀏覽:433
三洋帝度冰箱壓縮機 瀏覽:297
多義線命令 瀏覽:48
小說免費網站有哪些 瀏覽:466
外國太空歷險的兒童片 瀏覽:693
韓國《貪欲之島》女主角 瀏覽:582
一個西方電影講述變異 瀏覽:312
女大學生的沙龍室女演員 瀏覽:738
歐美大片網站 瀏覽:924
周星馳電影七仔小女孩叫什麼 瀏覽:75
印度電影講一男一女在兩輛汽車窗戶上寫字留言 瀏覽:469
ck236編程 瀏覽:392
芭比大電影35部大全公主名字 瀏覽:429
九叔世界酒泉鎮安妮 瀏覽:302
榮耀新手機開機怎麼那麼多app 瀏覽:535
3dmax命令面板上插值沒有了 瀏覽:788
十大必看火影小說排行榜 瀏覽:484
用雲伺服器做視頻播放直播 瀏覽:344