社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

关于Python爬虫,一条高效的学习路径

Python之禅 • 7 年前 • 324 次点击  



数据是创造和决策的原材料,高质量的数据都价值不菲。而利用爬虫,我们可以获取大量的价值数据,经分析可以发挥巨大的价值,比如:

豆瓣、知乎:爬取优质答案,筛选出各话题下热门内容,探索用户的舆论导向。

淘宝、京东:抓取商品、评论及销量数据,对各种商品及用户的消费场景进行分析。

搜房、链家抓取房产买卖及租售信息,分析房价变化趋势、做不同区域的房价分析。

拉勾、智联:爬取各类职位信息,分析各行业人才需求情况及薪资水平。

雪球网:抓取雪球高回报用户的行为,对股票市场进行分析和预测。



爬虫是入门Python最好的方式,没有之一。Python有很多应用的方向,比如后台开发、web开发、科学计算等等,但爬虫对于初学者而言更友好,原理简单,几行代码就能实现基本的爬虫,学习的过程更加平滑,你能体会更大的成就感。


掌握基本的爬虫后,你再去学习Python数据分析、web开发甚至机器学习,都会更得心应手。因为这个过程中,Python基本语法、库的使用,以及如何查找文档你都非常熟悉了。


对于小白来说,爬虫可能是一件非常复杂、技术门槛很高的事情。比如有的人则认为先要掌握网页的知识,遂开始 HTML\CSS,结果入了前端的坑,瘁……


但掌握正确的方法,在短时间内做到能够爬取主流网站的数据,其实非常容易实现,但建议你从一开始就要有一个具体的目标。


在目标的驱动下,你的学习才会更加精准和高效。那些所有你认为必须的前置知识,都是可以在完成目标的过程中学到的。这里给你一条平滑的、零基础快速入门的学习路径。




 - ❶ -

学习 Python 包并实现基本的爬虫过程


大部分爬虫都是按“发送请求——获得页面——解析页面——抽取并储存内容”这样的流程来进行,这其实也是模拟了我们使用浏览器获取网页信息的过程。


Python中爬虫相关的包很多:urllib、requests、bs4、scrapy、pyspider 等,建议从requests+Xpath 开始,requests 负责连接网站,返回网页,Xpath 用于解析网页,便于抽取数据。


如果你用过 BeautifulSoup,会发现 Xpath 要省事不少,一层一层检查元素代码的工作,全都省略了。这样下来基本套路都差不多,一般的静态网站根本不在话下,豆瓣、糗事百科、腾讯新闻等基本上都可以上手了




 -

掌握各种技巧,应对特殊网站的反爬措施


当然,爬虫过程中也会经历一些绝望啊,比如被网站封IP、比如各种奇怪的验证码、userAgent访问限制、各种动态加载等等。


遇到这些反爬虫的手段,当然还需要一些高级的技巧来应对,常规的比如访问频率控制、使用代理IP池、抓包、验证码的OCR处理等等


往往网站在高效开发和反爬虫之间会偏向前者,这也为爬虫提供了空间,掌握这些应对反爬虫的技巧,绝大部分的网站已经难不到你了。




 - 

学习 scrapy,搭建工程化的爬虫


掌握前面的技术一般量级的数据和代码基本没有问题了,但是在遇到非常复杂的情况,可能仍然会力不从心,这个时候,强大的 scrapy 框架就非常有用了。


scrapy 是一个功能非常强大的爬虫框架,它不仅能便捷地构建request,还有强大的 selector 能够方便地解析 response,然而它最让人惊喜的还是它超高的性能,让你可以将爬虫工程化、模块化。


学会 scrapy,你可以自己去搭建一些爬虫框架,你就基本具备爬虫工程师的思维了。




- ❹ -

学习数据库基础,应对大规模数据存储


爬回来的数据量小的时候,你可以用文档的形式来存储,一旦数据量大了,这就有点行不通了。所以掌握一种数据库是必须的,学习目前比较主流的 MongoDB 就OK。


MongoDB 可以方便你去存储一些非结构化的数据,比如各种评论的文本,图片的链接等等。你也可以利用PyMongo,更方便地在Python中操作MongoDB。


因为这里要用到的数据库知识其实非常简单,主要是数据如何入库、如何进行提取,在需要的时候再学习就行。




 -  -

分布式爬虫,实现大规模并发采集


爬取基本数据已经不是问题了,你的瓶颈会集中到爬取海量数据的效率。这个时候,相信你会很自然地接触到一个很厉害的名字:分布式爬虫


分布式这个东西,听起来很恐怖,但其实就是利用多线程的原理让多个爬虫同时工作 ,需要你掌握 Scrapy + MongoDB + Redis 这三种工具


Scrapy 前面我们说过了,用于做基本的页面爬取,MongoDB 用于存储爬取的数据,Redis 则用来存储要爬取的网页队列,也就是任务队列。


所以有些东西看起来很吓人,但其实分解开来,也不过如此。当你能够写分布式的爬虫的时候,那么你可以去尝试打造一些基本的爬虫架构了,实现一些更加自动化的数据获取。




你看,这一条学习路径下来,你已然可以成为老司机了,非常的顺畅。所以在一开始的时候,尽量不要系统地去啃一些东西,找一个实际的项目(开始可以从豆瓣、小猪这种简单的入手),直接开始就好


我们推出了一套非常系统的Python+爬虫课程,除了为你提供一条清晰的学习路径,我们甄选了最实用的学习资源以及庞大的主流爬虫案例库。短时间的学习,你就能够很好地掌握Python和爬虫,获取你想得到的数据,同时具备数据分析、机器学习的编程基础。




《Python爬虫:入门+进阶》和《Python编程零基础入门》均为系统的实战课程,分别给出了优化的学习路径,让你不仅可以掌握爬虫、数据分析、机器学习等所需的Python基础,同时掌握获取大规模数据的爬虫技巧。



如果你希望在短时间内学会Python和爬虫,少走弯路

扫描下方二维码加入课程


套课限额优惠 ¥439(原价¥798),限前100名





- 高效的学习路径 -



一上来就讲理论、语法、编程语言是非常不合理的,我们会直接从具体的案例入手,通过实际的操作,学习具体的知识点。我们为你规划了一条系统的学习路径,让你不再面对零散的知识点。


《Python爬虫:入门+进阶》大纲


第一章:Python 爬虫入门


1、什么是爬虫

网址构成和翻页机制

网页源码结构及网页请求过程

爬虫的应用及基本原理


2、初识Python爬虫

Python爬虫环境搭建

创建第一个爬虫:爬取百度首页

爬虫三步骤:获取数据、解析数据、保存数据


3、使用Requests爬取豆瓣短评

Requests的安装和基本用法

Requests 爬取豆瓣短评信息

一定要知道的爬虫协议


4、使用Xpath解析豆瓣短评

解析神器Xpath的安装及介绍

Xpath的使用:浏览器复制和手写

实战:用 Xpath 解析豆瓣短评信息


5、使用pandas保存豆瓣短评数据

pandas 的基本用法介绍

pandas文件保存、数据处理

实战:使用pandas保存豆瓣短评数据


6、浏览器抓包及headers设置(案例一:爬取知乎)

爬虫的一般思路:抓取、解析、存储

浏览器抓包获取Ajax加载的数据

设置headers 突破反爬虫限制

实战:爬取知乎用户数据


7、数据入库之MongoDB(案例二:爬取拉勾)

MongoDBRoboMongo的安装和使用

设置等待时间和修改信息头

实战:爬取拉勾职位数据

将数据存储在MongoDB

补充实战:爬取微博移动端数据


8、Selenium爬取动态网页(案例三:爬取淘宝)

动态网页爬取神器 Selenium搭建与使用

分析淘宝商品页面动态信息

实战:用Selenium 爬取淘宝网页信息



第二章:Python爬虫之Scrapy框架


1、爬虫工程化及Scrapy框架初窥

htmlcssjs、数据库、http协议、前后台联动

爬虫进阶的工作流程

Scrapy组件:引擎、调度器、下载中间件、项目管道等

常用的爬虫工具:各种数据库、抓包工具等


2、Scrapy安装及基本使用

Scrapy安装

Scrapy的基本方法和属性

开始第一个Scrapy项目


3、Scrapy选择器的用法

常用选择器:cssxpathrepyquery

css的使用方法

xpath的使用方法

re的使用方法

pyquery的使用方法


4、Scrapy的项目管道

Item Pipeline的介绍和作用

Item Pipeline的主要函数

实战举例:将数据写入文件

实战举例:在管道里过滤数据


5、Scrapy的中间件

下载中间件和蜘蛛中间件

下载中间件的三大函数

系统默认提供的中间件


6、Scrapy的Request和Response详解

Request对象基础参数和高级参数

Request对象方法

Response对象参数和方法

Response对象方法的综合利用详解



第三章:Python爬虫进阶操作


1、网络进阶之谷歌浏览器抓包分析

http请求详细分析

网络面板结构

过滤请求的关键字方法

复制、保存和清除网络信息

查看资源发起者和依赖关系


2、数据入库之去重与数据库

数据去重

数据入库MongoDB



第四章:分布式爬虫及实训项目


1、大规模并发采集——分布式爬虫的编写

分布式爬虫介绍

Scrapy分布式爬取原理

Scrapy-Redis的使用

Scrapy分布式部署详解


2、实训项目(一)——58同城二手房监控


3、实训项目(二)——去哪儿网模拟登陆


4、实训项目(三)——京东商品数据抓取


《Python编程零基础入门》大纲


第一章:Python介绍和安装

Python简介;特点以及应用;编程环境的搭建及IDE的使用

实践练习1—安装Anaconda,并且熟悉spyder。


第二章:Python基础知识

1)  Python变量赋值及数据类型

2)  Python数值及方法

3)  Python字符串及方法

4)  Python数据结构:列表、元组的操作

5)  Python数据结构:字典、集合的操作

实践练习2—通过使用Python支持的字典,列表和元组的数据结构,实现:通讯录的操作,创建、添加、查找等内容,通讯录信息包含姓名、电话、性别、爱好等。


第三章:Python语句、关键字以及内存管理

1)  条件语句

2)  循环语句

3)  循环控制语句

4)  关键字介绍

5)  变量的高级--内存管理

实践练习3—编写小程序,对上一节作业的通讯录进行功能增强,实现:查找电话号码主人,喜欢吃苹果的人等。


第四章:Python函数

1)  函数及函数定义

2)  函数的参数/全局变量和局部变量

3)  内建函数及递归

4)  匿名函数

5)  函数式编程:map/reduce/filter/sorted/偏函数

实践练习4—编写一个函数,实现:通讯录的更新,定义添加成员的函数、电话查找、兴趣查找等功能


第五章:Python高级特性及编程规范

1)  列表生成式

2)  迭代器

3)  生成器

4)  装饰器

5)  Python编程规范

实践练习5—小程序:高级功能——判断输入是否合法的装饰器功能的使用。涵盖内容:学习生成器及装饰器的使用,给多个函数添加判断合法性的装饰器。


第六章:模块的使用

1)  模块名称空间和导入

2)  模块的执行

3)  os和sys模块介绍和使用

4)  第三方模块的安装

实践练习6—函数编写,实现:文件查找和拷贝功能。


第七章:面向对象编程

1)  类与面向对象设计OOP

2)  多态、继承和封装

3)  类装饰器


第八章:异常、错误类型及编码

1)  异常和捕捉异常

2)  try-except语句和结构

3)  排查错误方法

4)  编码方式介绍


第九章:文件处理

1)  文件内建方法:打开和读写

2)  文件的存储模块:pickle和marshal

3)  Json文件的使用场景及解析

实践练习7—编写一个脚本,实现:查找读取传递XXX.json文件中的内容,json文件中内容包含:主机IP、名字、所在地等信息。


第十章:正则表达式

1)  特殊的符号和数字

2)  正则表达式与python

3)  Re模块

实践练习8—继续练习6内容,编写一个函数,实现:查找tmp文件中pass字符串。


第十一章:时间与日志

1)  Time模块的使用

2)  Log模块的使用

卡片里面大纲内容可以滑动




- 每课都有学习资料 -


你可能收集了以G计的的学习资源,但保存后从来没打开过?我们已经帮你找到了最有用的那部分,并且用最简单的形式描述出来,帮助你学习,你可以把更多的时间用于练习和实践。


考虑到各种各样的问题,我们在每一节都准备了课后资料,包含四个部分:


1.课程重点笔记,详细阐述重点知识,帮助你理解和后续快速复习;

2.默认你是小白,补充所有基础知识,哪怕是软件的安装与基本操作;

3.课内外案例提供参考代码学习,让你轻松应对主流网站爬虫;

4.超多延伸知识点和更多问题的解决思路,让你有能力去解决实际中遇到的一些特殊问题。


某节部分课后资料




- 超多实战项目,深化编程技巧 -


爬虫课程中提供了目前最常见的网站爬虫案例:豆瓣、百度、知乎、淘宝、京东、微博…… 每个案例在课程视频中都有详细分析,老师带你完成每一步操作


同时在Python编程课中,除了基本的Python语法,还有其他教程容易忽略的Map/Reduce、错误类型、正则表达式、内存管理等知识。同时还准备了记账本、文本识别、旅行青蛙、贪吃蛇、壁纸下载器等多个实战项目。





- 技能拓展:反爬虫及数据存储、处理 -


懂得基本的爬虫是远远不够的,所以我们会用实际的案例,带你了解一些网站的反爬虫措施,并且用具体的技术绕过限制。比如异步加载、IP限制、headers限制、验证码等等,这些比较常见的反爬虫手段,你都可以很好地规避。


工程化的爬虫、及分布式爬虫技术,让你有获取大规模数据的可能。除了爬虫的内容,你还将了解数据库(Mongodb)、pandas 的基本知识,帮你存储爬取的数据,同时可以对数据进行管理和清洗,你可以获得更干净的数据,以便后续的分析和处理。


爬取拉勾招聘数据并用 MongoDB 存储



除了经验丰富、带你一步步实操的授课老师之外,助教老师也会在学习群里及时解答你遇到的每一个问题。同时,你还可以跟一群未来优秀的工程师,分享经验、代码、数据,探讨爬虫和数据分析技术



【课程信息】


「 课程名称 」

《Python 爬虫:入门+进阶》

《Python编程零基础入门》


「 上课形式 」

录播课程,可随时开始上课,反复观看


「 面向人群 」

零基础的小白,负基础的小白白


「 答疑形式 」

学习群老师随时答疑


「 课程资料 」

重点笔记、操作详解、参考代码、课后拓展





公众号专属优惠,套课限额底价

几乎只是一门课的价格,同时深入学习Python与爬虫


¥439(原价¥798),限前100名


长按下方二维码,立即去抢



购买后会收到「 DC学院 」发送的短信,用上课码即可在官网学习这两门课



课程咨询、资料获取、免费试看请加入下方群聊

若群满,加Alice微信:datacastle2017




今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/WiiZNOteF6
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/11622
 
324 次点击