整理版Python学习总结.docx

上传人:b****2 文档编号:1315344 上传时间:2022-10-20 格式:DOCX 页数:21 大小:1.25MB
下载 相关 举报
整理版Python学习总结.docx_第1页
第1页 / 共21页
整理版Python学习总结.docx_第2页
第2页 / 共21页
整理版Python学习总结.docx_第3页
第3页 / 共21页
整理版Python学习总结.docx_第4页
第4页 / 共21页
整理版Python学习总结.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

整理版Python学习总结.docx

《整理版Python学习总结.docx》由会员分享,可在线阅读,更多相关《整理版Python学习总结.docx(21页珍藏版)》请在冰豆网上搜索。

整理版Python学习总结.docx

整理版Python学习总结

Python总结

前言

知乎:

路人甲

微博:

玩数据的路人甲

微信公众号:

一个程序员的日常

在知乎分享已经有一年多了,之前一直有朋友说我的回答能整理成书籍了,一直偷懒没做,最近有空仔细整理了知乎上的回答和文章另外也添加了一些新的内容,完成了几本小小的电子书,这一本是有关于Python方面的。

还有另外几本包括我的一些数据分析方面的读书笔记、增长黑客的读书笔记、机器学习十大算法等等内容。

将会在我的微信公众号:

一个程序员的日常进行更新,同时也可以关注我的知乎账号:

路人甲及时关注我的最新分享用数据讲故事。

(一)如何学习Python

学习Python大致可以分为以下几个阶段:

1.刚上手的时候肯定是先过一遍Python最基本的知识,比如说:

变量、数据结构、语法等,基础过的很快,基本上1~2周时间就能过完了,我当时是在这儿看的基础:

Python简介|菜鸟教程

2.看完基础后,就是做一些小项目巩固基础,比方说:

做一个终端计算器,如果实在找不到什么练手项目,可以在Codecademy-learntocode,interactively,forfree上面进行练习。

3.如果时间充裕的话可以买一本讲Python基础的书籍比如《Python编程》,阅读这些书籍,在巩固一遍基础的同时你会发现自己诸多没有学习到的边边角角,这一步是对自己基础知识的补充。

4.Python库是Python的精华所在,可以说Python库组成并且造就了Python,Python库是Python开发者的利器,所以学习Python库就显得尤为重要:

ThePythonStandardLibrary,Python库很多,如果你没有时间全部看完,不妨学习一遍常用的Python库:

Python常用库整理-知乎专栏

5.Python库是开发者利器,用这些库你可以做很多很多东西,最常见的网络爬虫、自然语言处理、图像识别等等,这些领域都有很强大的Python库做支持,所以当你学了Python库之后,一定要第一时间进行练习。

如何寻找自己需要的Python库呢?

推荐我之前的一个回答:

如何找到适合需求的Python库?

6.学习使用了这些Python库,此时的你应该是对Python十分满意,也十分激动能遇到这样的语言,就是这个时候不妨开始学习Python数据结构与算法,Python设计模式,这是你进一步学习的一个重要步骤:

faif/python-patterns

7.当度过艰难的第六步,此时选择你要研究的方向,如果你想做后端开发,不妨研究研究Django,再往后,就是你自己自由发挥了。

(二)一些Python免费课程推荐

以下课程都为免费课程

1.python零基础相关

适用人群:

Python零基础的初学者、Web开发程序员、运维人员、有志于从事互联网行业以及各领域应用Python的人群

Ø疯狂的Python:

快速入门精讲

Ø零基础入门学习Python

Ø玩转Python语言

ØPython语言程序设计

Ø程序设计入门

Ø可汗学院公开课:

计算机科学

Øpython入门到精通

ØPython交互式编程入门的课程主页

ØPython交互编程入门(第2部分)的课程主页

2.pythonweb方向

PythonDjango快速Web应用开发入门

3.python爬虫

Python实战:

一周学会爬取网页

4.python数据分析方向

数据分析实战基础课程

 

(三)Python爬虫需要哪些知识?

要学会使用Python爬取网页信息无外乎以下几点内容:

1、要会Python

2、知道网页信息如何呈现

3、了解网页信息如何产生

4、学会如何提取网页信息

第一步Python是工具,所以你必须熟练掌握它,要掌握到什么程度呢?

如果你只想写一写简单的爬虫,不要炫技不考虑爬虫效率,你只需要掌握:

Ø数据类型和变量

Ø字符串和编码

Ø使用list和tuple

Ø条件判断、循环

Ø使用dict和set

你甚至不需要掌握函数、异步、多线程、多进程,当然如果想要提高自己小爬虫的爬虫效率,提高数据的精确性,那么记住最好的方式是去系统的学习一遍Python,去哪儿学习?

Python教程

假设已经熟悉了最基础的Python知识,那么进入第二步:

知道网页信息如何呈现?

你首先要知道所需要抓取的数据是怎样的呈现的,就像是你要学做一幅画,在开始之前你要知道这幅画是用什么画出来的,铅笔还是水彩笔...可能种类是多样的,但是放到网页信息来说这儿只有两种呈现方式:

1、HTML(HTML简介)

2、JSON(JSON简介)

HTML是用来描述网页的一种语言

JSON是一种轻量级的数据交换格式

假设你现在知道了数据是由HTML和JSON呈现出来的,那么我们紧接着第三步:

数据怎么来?

数据当然是从服务器反馈给你的,为什么要反馈给你?

因为你发出了请求。

“Hi~,服务器我要这个资源”

“正在传输中...”

“已经收到HTML或者JSON格式的数据”

这个请求是什么请求?

要搞清楚这一点你需要了解一下http的基础知识,更加精确来说你需要去了解GET和POST是什么,区别是什么。

也许你可以看看这个:

浅谈HTTP中Get与Post的区别-hyddd-博客园

很高兴你使用的是Python,那么你只需要去掌握好快速上手-Requests2.10.0文档,requests可以帮你模拟发出GET和POST请求,这真是太棒了。

饭菜已经备好,两菜一汤美味佳肴,下面就是好好享受了。

现在我们已经拿到了数据,我们需要在这些错乱的数据中提取我们需要的数据,这时候我们有两个选择。

第一招:

万能钥匙

Python正则表达式指南,再大再乱的内容,哪怕是大海捞针,只要告诉我这个针的样子我都能从茫茫大海中捞出来,强大的正则表达式是你提取数据的不二之选。

第二招:

笑里藏刀

BeautifulSoup4.2.0文档,或许我们有更好的选择,我们把原始数据和我们想要的数据的样子扔个这个Beautifulsoup,然后让它帮我们去寻找,这也是一个不错的方案,但是论灵活性,第二招还是略逊于第一招。

第三招:

双剑合璧

最厉害的招式莫过于结合第一招和第二招了,打破天下无敌手。

基础知识我都会,可是我还是写不了一个爬虫啊!

客观别急,这还没完。

以下这些项目,你拿来学习学习练练手。

一些教学项目你值得拥有:

Ø03.豆瓣电影TOP250

Ø04.另一种抓取方式

还不够?

这儿有很多:

Ø知乎--你需要这些:

Python3.x爬虫学习资料整理

Ø如何学习Python爬虫[入门篇]?

-知乎专栏

Ø知乎--Python学习路径及练手项目合集

(四)Python爬虫进阶

爬虫无非分为这几块:

分析目标、下载页面、解析页面、存储内容,其中下载页面不提。

1.分析目标

所谓分析就是首先你要知道你需要抓取的数据来自哪里?

怎么来?

普通的网站一个简单的POST或者GET请求,不加密不反爬,几行代码就能模拟出来,这是最基本的,进阶就是学会分析一些复杂的目标,比如说:

淘宝、新浪微博登陆以及网易云的评论信息等等。

2.解析页面

解析页面主要是选择什么库或者那些库结合能使解析速度更快,可能你一开始你通过种种地方了解到了bs库,于是你对这个库很痴迷,以后只要写爬虫,总是先写上:

importrequests

frombs4importBeautifulSoup

当然bs已经很优秀了,但是并不代表可以用正则表达式解析的页面还需要使用bs,也不代表使用lxml能解决的还要动用bs,所以这些解析库的速度是你在进阶时要考虑的问题。

3.存储内容

刚开始学爬虫,一般爬取的结果只是打印出来,最后把在终端输出的结果复制粘贴保存就好了;后来发现麻烦会用上xlwt/openpyxl/csv的把存储内容写入表格,再后来使用数据库sqlite/mysql/neo4j只要调用了库都很简单,当然这是入门。

进阶要开始学习如何选择合适的数据库,或者存储方式。

当爬取的内容过千万的时候,如何设计使存储速度更快,比如说当既有人物关系又有人物关系的时候,一定会用neo4j来存储关系,myslq用来存储用户信息,这样分开是因为如果信息全部存入neo4j,后期的存储速度经十分的慢。

当你每个步骤都能做到很优秀的时候,你应该考虑如何组合这四个步骤,使你的爬虫达到效率最高,也就是所谓的爬虫策略问题,爬虫策略学习不是一朝一夕的事情,建议多看看一些比较优秀的爬虫的设计方案,比如说Scrapy。

除了爬取策略以外,还有几点也是必备的:

1.代理策略以及多用户策略

代理是爬虫进阶阶段必备的技能,与入门阶段直接套用代理不同,在进阶阶段你需要考虑如何设计使用代理策略,什么时候换代理,代理的作用范围等等,多用户的抓取策略考虑的问题基本上与代理策略相同。

2.增量式抓取以及数据刷新

比如说你抓取的是一个酒店网站关于酒店价格数据信息的,那么会有这些问题:

酒店的房型的价格是每天变动的,酒店网站每天会新增一批酒店,那么如何进行存储、如何进行数据刷新都是应该考虑的问题。

3.验证码相关的一些问题

有很多人提到验证码,我个人认为验证码不是爬虫主要去解决的问题,验证码不多的情况考虑下载到本地自己输入验证码,在多的情况下考虑接入打码平台。

(五)Python爬虫面试指南

前段时间快要毕业,而我又不想找自己的老本行Java开发了,所以面了很多Python爬虫岗位。

因为我在南京上学,所以我一开始只是在南京投了简历,我一共面试了十几家企业,其中只有一家没有给我发offer,其他企业都愿意给到10K的薪资,不要拿南京的薪资水平和北上深的薪资水平比较,结合面试常问的问题类型说一说我的心得体会。

第一点:

Python

因为面试的是Python爬虫岗位,面试官大多数会考察面试者的基础的Python知识,包括但不限于:

ØPython2.x与Python3.x的区别

ØPython的装饰器

ØPython的异步

ØPython的一些常用内置库,比如多线程之类的

第二点:

数据结构与算法

数据结构与算法是对面试者尤其是校招生面试的一个很重要的点,当然小公司不会太在意这些,从目前的招聘情况来看对面试者的数据结构与算法的重视程度与企业的好坏成正比,那些从不问你数据结构的你就要当心他们是否把你当码农用的,当然以上情况不绝对,最终解释权归面试官所有。

第三点:

Python爬虫

最重要也是最关键的一点当然是你的Python爬虫相关的知识与经验储备,这通常也是面试官考察的重点,包括但不限于:

Ø你遇到过的反爬虫的策略有哪些?

Ø你常用的反反爬虫的方案有哪些?

Ø你用过多线程和异步吗?

除此之外你还用过什么方法来提高爬虫效率?

Ø有没有做过增量式抓取?

Ø对Python爬虫框架是否有了解?

第四点:

爬虫相关的项目经验

爬虫重在实践,除了理论知识之外,面试官也会十分注重爬虫相关的项目:

Ø你做过哪些爬虫项目?

如果有Github最好

Ø你认为你做的最好的爬虫项目是哪个?

其中解决了什么难题?

有什么特别之处?

以上是我在面试过程中,会碰到的一些技术相关的问题的总结,当然面试中不光是技术这一点,但是对于做技术的,过了技术面基本上就是薪资问题了。

(六)推荐一些不错的Python博客

如果是Python基础的话,廖雪峰的博客教程会是一个不错的选择:

ØPython3教程

ØPython2.7教程

当然很多刚接触Python的同学反应廖大大的教程中部分跳跃性太大,如果觉得跳跃性太大可以结合菜鸟教程一起看:

ØPython3教

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 人力资源管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1