导航:首页 > 编程语言 > 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豆瓣相关的资料

热点内容
唐古拉优选app叫什么名字 浏览:37
打开一个文件夹为什么接着就退出 浏览:49
女主高中就怀孕的小说 浏览:10
app为什么必须要获取手机号码 浏览:58
实用的网页编程 浏览:424
宝鸡小程序定制开发源码 浏览:432
十大军事历史穿越小说 浏览:56
爱的共享韩 浏览:179
中文字幕推荐排行榜 浏览:589
李采镡所有电影 浏览:348
前度2未删减 浏览:866
日本一部关于平行时空的电影 浏览:346
伤寒论原文pdf 浏览:29
剧情肉的电影 浏览:803
下行 电影在线观看 浏览:786
欧美大尺度男同电影 浏览:985
张学友最后大佬电影 浏览:777
心理罪中廖亚凡怀了孩子 浏览:844
服务器如何开权限设置密码 浏览:271
申请资料填写小程序源码 浏览:177