刚开始接触爬虫的时候,简直惊为天人,十几行代码,就可以将无数网页的信息全部获取下来,自动选取网页元素,自动整理成结构化的文件

利用这些数据,可以做很多领域的分析、市场调研,获得很多有价值的信息,可以应用在很多的工作场景,于是果断开始学习。

- ❶ -

并非开始都是最容易的

刚开始对爬虫不是很了解,又没有任何的计算机、编程基础,确实有点懵逼。从哪里开始,哪些是最开始应该学的,哪些应该等到有一定基础之后再学,也没个清晰的概念。

因为要学编程,那先从 Python 开始吧。于是看了一些教程和书籍,了解基本的数据结构,然后是列表、字典、元组,各种函数和控制语句(条件语句、循环语句)。

学了一段时间,才发现自己还没接触到真正的爬虫呢,而且纯理论学习很快就忘了,回去复习又太浪费时间,简直不要太绝望。把 Python 的基础知识过了一遍之后,我竟然还没装一个可以敲代码的IDE。

- ❷ -

开始直接上手

转机出现在看过一篇爬虫的技术文章后,清晰的思路和通俗易懂的语言让我觉得,这才是我想学的爬虫。于是决定先配一个环境,试试看爬虫到底是怎么玩的。

因为怕出错,装了比较保险的 Anaconda,用自带的 Jupyter Notebook 作为IDE来写代码。看到很多人说因为配置环境出各种BUG,简直庆幸。很多时候打败你的,并不是事情本身,说的就是爬虫配置环境这事儿。

遇到的另一个问题是,Python 的爬虫可以用很多包或者框架来实现,应该选哪一种呢?我的原则就是是简单好用,写的代码少,对于一个小白来说,性能、效率什么的,统统被我 pass 了。于是开始接触 urllib、美丽汤(BeautifulSoup),因为听别人说很简单。

上手的第一个案例是豆瓣,照着一些爬取豆瓣电影的入门级例子开始看,从这些例子里面,了解了一点点爬虫的基本原理:下载页面、解析页面、定位并抽取数据。

当然并没有去系统看 urllib 和 BeautifulSoup 了,我需要把眼前实例中的问题解决,比如下载、解析页面,基本都是固定的语句,直接用就行

用 urllib 下载和解析页面的固定句式

当然 BeautifulSoup 中的基本方法是不能忽略的,但也无非是 find、get_text() 之类,信息量很小。就这样,通过别人的思路和自己查找美丽汤的用法,完成了豆瓣电影的基本信息爬取。

用 BeautifulSoup 爬取豆瓣电影详情

- ❸ -

爬虫渐入佳境

有了一些套路和形式,就会有目标,可以接着往下学了。自己去摸索爬取更多的信息,爬取多个页面。这个时候就发现基础不足了,比如爬取多个元素、翻页、处理多种情况等涉及的语句控制,又比如提取内容时涉及到的字符串、列表、字典的处理,还远远不够。

再回去补充 Python 的基础知识,就很有针对性,而且能马上能用于解决问题,也就理解得更深刻。

后来认识到 xpath 之后相见恨晚,这才是入门必备利器啊,直接Chrome复制就可以了,指哪打哪。即便是要自己写 xpath,以w3school上几页的 xpath 教程,一个小时也可以搞定了

requests+xpath 爬取豆瓣TOP250图书信息

- ❹ -

跟反爬虫杠上了

通过 requests+xpath,我可以去爬取很多网站网站了,后来自己练习了小猪的租房信息和当当的图书数据。爬拉勾的时候发现了问题,自己的请求根本不会返回信息,然后终于知道别人代码中的 headers 是干啥的了?。

在爬虫中添加 headers 信息,伪装成真实用户

接着是各种定位不到元素,然后知道了这是异步加载,数据根本不在网页源代码中,需要通过抓包来获取网页信息。于是在各种 JS、XHR的文件中 preview,寻找包含数据的链接。

当然知乎还好,本身加载的文件不多,找到了 json 文件直接获取对应的数据。(这里要安利一个chrome插件:jsonview,让小白轻松看懂 json 文件)

浏览器抓取 JavaScript 加载的数据

在这里就对反爬虫有了认识,当然这还是最基本的,更严格的IP限制、验证码、文字加密等等,可能还会遇到很多难题。

比如后来在爬其他网站的时候就被封了IP,简单的可以通过 time模块控制爬取频率的方法解决,限制比较严格或者需要保证爬取速度,就尝试用代理IP来解决。

当然,后来也试了一下 Selenium,这个就真的是按照真实的用户浏览行为(点击、搜索、翻页)来实现爬虫,所以对于那些反爬虫特别厉害的网站,又没有办法解决,Selenium 超级好用,虽然速度稍微慢点。

- ❺ -

尝试强大的 Scrapy 框架

有了 requests+xpath 和抓包大法,就可以做很多事情了,豆瓣各分类下的电影,58同城、知乎、拉勾这些网站基本都没问题。不过,当爬取的数据量级很大,而且需要灵活地处理各个模块的话,会显得很力不从心。

于是了解到强大的 Scrapy 框架,它不仅能便捷地构建 Request,还有强大的 Selector 能够方便地解析 Response,然而最让人惊喜的还是它超高的性能,可以将爬虫工程化、模块化

Scrapy 框架的基本组件

学会 Scrapy,自己去尝试搭建了简单的爬虫框架,在做大规模数据爬去的时候能够结构化、工程化地思考大规模的爬取问题。

当然 Scrapy 本身的 selector 、中间件、spider 等会比较难理解,还是建议结合具体的例子,参考别人的代码,去理解其中实现的过程,这样能够更好地理解。

用 Scrapy 爬取了大量租房信息

- ❻ -

本地文件搞不动了,上数据库

爬回来大量的数据之后就发现,本地的文件存起来非常不方便,即便存下来了,打开大文件电脑会卡得很严重。怎么办呢?果断上数据库啊,于是开始入坑 MongoDB。结构化、非结构化的数据都能够存储,安装好 PyMongo,就可以方便地在 Python 中操作数据库了。

当然对于爬虫这一块,并不需要多么高深的数据库技术,主要是数据的入库和提取,增删查改等基本操作

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

- ❼ -

传说中的分布式爬虫

这个时候,基本上很大一部分的网页都能爬了,瓶颈就集中到爬取大规模数据的效率。因为学了 Scrapy,于是自然地接触到一个很厉害的名字:分布式爬虫。

分布式这个东西,一听不明觉厉,感觉很恐怖,但其实就是利用多线程的原理让多个爬虫同时工作,除了前面学过的 Scrapy 和 MongoDB,好像还需要了解 Redis。

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

分布式这东西看起来很吓人,但其实分解开来,循序渐进地学习,也不过如此。

分布式爬58同城:定义项目内容部分

零基础学习爬虫,坑确实比较多,总结如下:

1.环境配置,各种安装包、环境变量,对小白太不友好;

2.缺少合理的学习路径,上来 Python、HTML 各种学,极其容易放弃;

3.Python有很多包、框架可以选择,但小白不知道哪个更友好;

4.遇到问题甚至不知道如何描述,更不用说去寻找解决办法;

5.网上的资料非常零散,而且对小白不友好,很多看起来云里雾里;

6.有些东西看似懂了,但结果自己写代码还是很困难;

……………………

所以跟我一样,很多人爬坑最大的体会是:尽量不要系统地去啃一些东西,找一个实际的项目(从豆瓣这种简单的入手),直接开始就好

因为爬虫这种技术,既不需要你系统地精通一门语言,也不需要多么高深的数据库技术,从实际的项目中去学习这些零散的知识点,你能保证每次学到的都是最需要的那部分

当然麻烦的是,在具体的问题中,如何找到具体需要的那部分学习资源、如何筛选和甄别,遇到困难时如何有效解决,是很多初学者面临的大问题。

DC学院准备了一门非常系统的爬虫课程,除了为你提供一条清晰、无痛的学习路径,我们甄选了最实用的学习资源以及庞大的主流爬虫案例库。即便是零基础,经过短时间的学习,也能很好地掌握爬虫这个技能,获取你想得到的数据。

已有 2000+ 同学加入,超级优惠限额开启

优惠限前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(案例二:爬取拉勾)

MongoDB及RoboMongo的安装和使用

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

实战:爬取拉勾职位数据

将数据存储在MongoDB中

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

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

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

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

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

第二章:Python爬虫之Scrapy框架

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

html、css、js、数据库、http协议、前后台联动

爬虫进阶的工作流程

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

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

2、Scrapy安装及基本使用

Scrapy安装

Scrapy的基本方法和属性

开始第一个Scrapy项目

3、Scrapy选择器的用法

常用选择器:css、xpath、re、pyquery

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、大规模并发采集——分布式爬虫的编写

分布式爬虫介绍

Redis数据库和Scrapy_redis安装和使用

消息队列和RabbitMQ

Celery分布式队列简介

2. 实训项目(一)—— 58同城出租信息爬取

爬取58同城租房信息

scrapy爬虫抓取网站的整体流程

解析函数和错误回调的编写

利用管道进行数据清洗、计算和入库

使用代理IP突破反爬限制

确定网页爬取的优先级和管道的优先级

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

利用cookie进行模拟登陆

cookie和session的重要性

分析HTTP请求寻找模拟登陆需要的所有cookie值

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

通用爬虫CrawlSpider

链接提取器和爬取规则

部署分布式爬虫实现分布式爬取

利用scrapy_redis实现URL去重

- 高效的学习路径 -

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

说点具体的,比如我们会直接用 lxml+Xpath取代 BeautifulSoup 来进行网页解析,减少你不必要的检查网页元素的操作,工具的安装都有详细教程及常见错误处理,多种工具都能完成的,我们会给你最简单的方法,这些看似细节,但可能是很多人都会踩的坑。

- 每课都有学习资料 -

网上的资料非常不系统,且良莠不齐,往往搜索、筛选非常浪费时间。当然你可能收集了以G计的的学习资源,但保存后从来没打开过?我们已经帮你找到了最有用的那部分,并且用最简单的形式描述出来,帮助你学习,你可以把更多的时间用于练习和实践。

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

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

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

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

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

某节部分课后资料

- 超多案例,覆盖主流网站 -

课程中提供了目前最常见的网站爬虫案例:豆瓣、百度、知乎、淘宝、京东、微博……每个案例在课程视频中都有详细分析,老师带你完成每一步操作,专治各种 “看得懂案例,写不出代码” 。

另外,我们还会补充比如小猪、链家、58同城、网易云音乐、微信好友等案例,提供思路与代码。多次的模仿和练习之后,你可以很轻松地写出自己的爬虫代码,并能够轻松爬取这些主流网站的数据。

- 爬虫技能进阶及数据存储、处理 -

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

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

- 导师团队 -

小X和小Y都是知乎爬虫话题下的大V,并且都是造数的全职爬虫工程师。他们给过我很多帮助,这个课也主要由他们来讲授。小X和小Y在在成为大佬的路上也爬过很多坑,所以知道小白要学什么、怎么学。最重要的是,他们喜欢分享,还威胁大BOSS黄震昕(造数CEO)加入,这也是花无数心血完成的精品课程。

黄震昕

造数科技创始人兼CEO

创立的造数科技是一家新一代智能云数据采集服务提供商,帮助企业和个人轻松获取并分析、利用外部数据,帮助其完成市场分析、竞品监控、舆情监控、商机发现等。造数上线一年以来,已经服务了13000多个企业和个人客户,分布在零售、电商、金融、资询、大数据等行业。造数新一代智能云爬虫产品已编入人教版高中信息技术教材(2018年9月出版)。


刘畅(小X)

高级爬虫工程师

造数爬虫项目组主要负责人, CPO(首席爬虫工程师),因常年对淘宝,京东,58,高德,美团,等互联网独角兽企业进行反爬策略分析并抓取,而被各大互联网公司成为头号“害虫”,见之必杀(程序员何苦为难程序员),目前造数构建大型分布式爬虫,和开发日IP过十万的高效代理池系统。


张世润(小Y)

高级爬虫工程师

爱好者:喜欢Python,擅长爬虫,数据处理;

创作者:知乎爬虫话题大V,原创文章近百篇,拥有数千粉丝;

学习者:爱学习的“萌新”,自学成长为爬虫工程师,深谙自学之道,愿分享所有能量带大家入门。

- 老师及时解决你的每一个问题 -

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

也有同学经过一个月的学习,能够写出分布式的框架,去爬去大规模的数据。我们也有信心让你在短时间内,达到爬取大规模数据的水平。

快速解决问题,学习效率才更高

【课程信息】

「 课程名称 」

Python 爬虫:入门+进阶

「 学习周期 」

建议每周至少学习8小时,2个月内完成课程

「 上课形式 」

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

「 面向人群 」

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

「 答疑形式 」

学习群老师随时答疑,即便是最初级的问题

「 课程资料 」

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

「 课程案例 」

爬取豆瓣短评、图书、电影数据

爬取知乎用户、回答数据

爬取淘宝、京东商品数据

爬取拉勾职位数据

爬取去哪儿旅游景点数据

爬取58同城租房数据

超低优惠名额打架抢购中

¥299(原价¥399),限额100名

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

如有任何疑问,按下方二维码入群咨询

若群满,加 Alice 微信:datacastle2017

哦,对了,我们给每个按要求完成学习的同学

准备了DC学院的学习证书

每个证书编号对应一个独立身份信息

- 写在最后 -

很多人问,学爬虫有什么用? 学完能做什么?爬虫好学吗? 分四个点来说说我个人的体会:

1. 数据增长的趋势是不可逆的,信息不对称也会越发明显,如何有效获取互联网的大量数据,来支撑有效的市场、舆论、产品、商业分析,得出有价值的信息,爬虫将是一个基础但又核心的技能。

2. 在前面学习的同学中,很多已经能够写基础的分布式框架,有人爬取租房、电商商品、书籍、电影等数据进行了分析,有人做出了每天自动爬取新闻、天气的Demo,也有人爬到了大量的“妹子图”……

3. 未来属于大数据和人工智能,以 Python 为代表的编程技术在其中应用广泛,获得编程思维、掌握快速学习的能力,会大幅增加核心竞争力。爬虫将是学习 Python 最好的入门途径,没有之一。

4. 很多人学了很多年 Office 还是玩不转,而正确学习爬虫,一天爬豆瓣,两天爬知乎,也很轻松,所以爬虫并不难,但是要有好的学习规划,避开那些容易让人放弃的坑。

点击下方“阅读原文”,开始掌握爬虫技能

我是如何零基础开始能写爬虫的?相关推荐

  1. 我是如何零基础开始能写爬虫的

    刚开始接触爬虫的时候,简直惊为天人,十几行代码,就可以将无数网页的信息全部获取下来,自动选取网页元素,自动整理成结构化的文件. 利用这些数据,可以做很多领域的分析.市场调研,获得很多有价值的信息,可以 ...

  2. 零基础学python爬虫-我是如何零基础开始能写Python爬虫的

    刚开始接触爬虫的时候,简直惊为天人,十几行代码,就可以将无数网页的信息全部获取下来,自动选取网页元素,自动整理成结构化的文件. 利用这些数据,可以做很多领域的分析.市场调研,获得很多有价值的信息.这种 ...

  3. 我是如何零基础入门前端开发的(2021 版)

    大家好,我是若川.最近组织了源码共读活动<1个月,200+人,一起读了4周源码>,已经有超50+人提交了笔记,群里已经有超1200人,感兴趣的可以点此链接扫码加我微信 ruochuan12 ...

  4. 零基础如何学好python爬虫?之python爬取B站小视频

    B 站真是个神奇的网站.找不到资料了,去 B 站逛一逛,保准有你满意的东西. 前几天写了个爬虫,用 path.re.BeautifulSoup 爬取的 B 站 python 视频,如果要爬取多页的话 ...

  5. 零基础如何学好python爬虫?python爬取B站小视频

    B 站真是个神奇的网站.找不到资料了,去 B 站逛一逛,保准有你满意的东西. 前几天写了个爬虫,用 path.re.BeautifulSoup 爬取的 B 站 python 视频,如果要爬取多页的话 ...

  6. 同学们零基础入门学写代码的最佳途径之一哦

    真正学过编程开发的人都知道,只看书的话是永远也学不会的,即使是再简单的代码,也必须亲自动手写出来运行一遍才会有底.Codecademy 可以让你直接在浏览器上完成真正的写代码学习,它非常巧妙地在网站上 ...

  7. 零基础自学python的建议-经验之谈——大学时候,我是如何零基础自学Python的?...

    这几年Python越来越火,对于大部分来说刚开始学Python时,面对网上各种各样的学习资料却不知道从何学起.其实Python是一个对初学者相对而言比较友好的编程语言,语法也比较简洁.下面我整理了一下 ...

  8. 介绍一位零基础学Python网络爬虫的工程师

    今天给大家推荐一位软件开发工程师兼Python网络爬虫与数据分析爱好者,它是「Python爬虫与数据挖掘」公众号号主Python进阶者.他系一名软件开发工程师,在工作之余,热爱Python编程,专注于 ...

  9. 如何自学python爬虫-Python爬虫:零基础该如何学习爬虫

    点击蓝字"python教程"关注我们哟! 现行环境下 大数据与人工智能的重要依托还是庞大的数据和分析采集 类似于淘宝 京东 百度 腾讯级别的企业 能够通过数据可观的用户群体获取需要 ...

最新文章

  1. MySQL主从复制Linux实现
  2. 8.Vue 事件处理
  3. vim下更省心地用中文
  4. 魔板(洛谷-P2730)
  5. 哈尔滨工业大学(深圳)姜欣副教授课题组招收客座硕士-机器人方向
  6. 一些SAP Partners能够通过二次开发实现打通C/4HANA和S/4HANA的方法介绍
  7. 一些关于Spring的随笔
  8. Java线程安全队列Queue实现原理
  9. Linux自动删除n天前备份
  10. 【吴恩达机器学习】学习笔记——梯度下降
  11. Java微信公众号开发之微信公众平台账号申请注册
  12. 多x多y的origin图_素雅、便携、多场景,松下纳诺怡X黑科技除菌净味产品使用简评...
  13. 第一次搭建ftp遇见的蹩脚的问题
  14. 阿里云域名注册优惠口令和续费优惠口令(更新)
  15. 算法工程师与java_java算法工程师的职责是什么?前景如何?
  16. 转型“系统集成商+大数据运营和服务商”,航天信息看好你哟
  17. 子矩阵的和(Python实现)
  18. M1 Mac使用Kitty script入库标准音源到Kontakt6
  19. 记录JDK1.8 List 转 Map 的时候遇到的坑
  20. Python通过socket执行WOL实现局域网内网络唤醒

热门文章

  1. 威联通nas利用calibre-web搭建个人数字图书管理系统
  2. 函数式思维: 运用函数式思维,第2 部分
  3. 狄利克雷卷积_狄利克雷卷积莫比乌斯反演总结
  4. 3、流量分析--分组TopN统计
  5. (项目名).exe”。已加载符号。 无法查找或打开 PDB 文件。
  6. [小说]魔王冢(35)天目
  7. 程序员面试阿里、腾讯、京东等大公司,这些套路你知道吗?
  8. 2012MDCC中国·移动开发者大会 邀请函
  9. ALSA声卡08_从零编写之框架_学习笔记
  10. c语言实训报告心得100字,c语言实训报告心得.doc