14天学习训练营导师课程:
杨鑫《Python 自学编程基础》
杨鑫《 Python 网络爬虫基础》
杨鑫《 Scrapy 爬虫框架实战和项目管理》

杨老师推荐自学Python的网站

w3schools
传送门

geeksforgeeks
传送门

realpython
传送门

学习之前读一读 来看看爬虫合不合法 传送门

立个小目标尽量做到一周输出 3篇 爬虫学习笔记哈

1.什么是爬虫

爬虫,即网络爬虫,又称网络蜘蛛(Web Spider),是一种按照一定规则,用来自动浏 览或抓取万维网数据的程序。可以把爬虫程序看成一个机器人,它的功能就是模拟人的行 为去访问各种站点,或者带回一些与站点相关的信息。它可以 24 小时不间断地做一些重复 性的工作,还可以自动提取一些数据。

但并不是只有 Python 才能编写爬虫 程序。其他的编程语言也可以用来编写爬虫程序,如 PHP 有 phpspider 爬虫框架,Java 有 WebMagic 爬虫框架,C#有 DotnetSpider 爬虫框架等等。

2.爬虫的应用场景

爬虫到底能干些什么呢?我们通过下面几个场景引入。

  • 场景一:

大部分读者应该都有看网络小说的习惯,而去正版站点看小说一般是需要付费的,所 以衍生了很多盗版小说站点。这种盗版小说站点一般通过挂广告的形式来盈利,在浏览器 底部会嵌入各种类型的广告,用户单击这些广告会打开其对应的网址,盗版小说站点以此 获利。 这些盗版小说站点的广告一般都是误导读者打开它。比如,广告上有个 X 按钮,读者 通常以为单击 X 按钮可以关闭这个广告,殊不知是打开了广告,而且有些广告中含有不堪 入目的内容。想一想,在拥挤的地铁里,旁边的人看到你打开了这样的网页,会有多尴尬。 有没有办法既能看到小说又不用看这些烦人的广告呢?

答:通过爬虫可以解决这个问题,让爬虫只解析小说部分的内容并显示出来,甚至可 以把整本小说的内容解析完,保存到本地,以便离线阅读。

  • 场景二:

有些读者有一种类似于强迫症的行为,比如,快递预计今天会到,每隔一段时间你就 会不由自主地输入单号看看快递到了没。有没有办法能摆脱这种频繁而又枯燥的工作 呢?

答:对于这种轮询(每隔一段时间查询一次)的任务,我们可以编写一个定时爬虫, 每隔一段时间自动去请求相应的站点,然后处理结果,判断其是否符合我们的预期,与人 工刷新相比,爬虫的频率更快、效率更高

  • 场景三:

有一些站点,会通过签到或以做每日任务的形式来提高用户的活跃度,当坚持到一定 天数后会发放一些小奖励。比如,坚持十五天就能获得一个小礼物。因为忙碌或其他原因, 你中断了签到,使得之前的努力就都白费了。而且有些每日任务非常枯燥,但每天要为此 花上好几分钟。有没有办法把这种任务交给程序来做,然后坐享其成呢?

答:可以把这些任务交给爬虫。对于签到这种操作,通过抓包获取签到所需的接口、 参数和请求规则,接着让脚本每天定时执行即可。每日任务一般通过模拟单击的方式完成, 通过 Selenium 自动化框架来模拟。对于 App 签到,则可以通过 Appium 移动端自动化测试 框架来完成。

  • 场景四:

如果你有志于从事 Python 开发相关的工作,想了解这个行业的一些情况,比如薪资、 年限和相关要求等,而你身边又没有从事相关工作的朋友,怎样才能获取到这些信息呢?

答:可以编写爬虫爬取一些招聘网站,比如拉勾、前程无忧这类站点,把 Python 岗位 相关的信息都抓取下来,然后通过数据分析基础三件套(NumPy、pandas、Matplotlib)进 行基本的数据分析,以此获取和这个行业相关的一些信息

3.爬虫由哪几部分组成

相信在看完爬虫应用的四个场景后,读者对爬虫能做什么有了大致了解,接下来我们 来了解爬虫由哪几部分组成。爬虫的三个组成部分如下图

3.1 模拟请求

模拟请求就是如何把我们的爬虫伪装得像一个人一样去访问互联网站点。

  • 最简单的站点,什么都不处理,只要发送请求,就会给出相应的结果。

  • 稍微复杂一点的站点,会判断请求头中的 User-Agent 是否为浏览器请求,Host 字 段是否为正确的服务器域名,以及 Referer 字段的地址是否合法。

  • 再复杂一点的站点,需要登录后才能访问。登录后会持有一个 Cookie 或 Session 会话,你需要带着这个东西才能执行一些请求,否则都会跳到登录页。

  • 更复杂一点的站点,登录很复杂,需要五花八门的验证码、最简单的数字图片加 噪点、滑动验证码、点触验证码。除此之外,还有一些其他特立独行的验证方式, 如最经典的微博宫格验证码、极验验证码的行为验证等。

  • 还有更复杂的站点,其链接和请求参数都是加密的,需要研究、破解加密规则才 能够模拟访问。

  • 除此之外,还有一些反爬虫套路,如 限制 IP 访问频次、JavaScript 动态加 载数据等

在模拟请求之前,先要了解请求规则, 一般通过抓包工具来完成。

(1)对最简单的浏览器请求(以 Chrome 谷歌浏览器为例),在网页空白处右键单击并 选择检查,或者依次单击如图 所示的“更 多工具”→“开发者工具”。在 Windows 中打 开开发者工具的快捷键 F12。

单击 Network 切换到抓包页面


刷新当前页面或者去进行百度搜索,可以看到如下图所示的很多网络请求。单击对应的请求即可查看完整的 请求信息

关于用 Chrome 抓包后面会详细介绍,这里先略过。

(2)稍微复杂一点的网站或 App 请求抓包,可以通过 Charles、Fidder、Wireshark 等工 具来实现,相关内容先收藏专栏等着看后面的学习笔记哈。

3.2 数据解析

数据解析是对模拟请求获得的不同类型的信息进行解析。

  • 返回的结果是 HTML 或 XML,可利用 Beautiful Soup、Xpath、PyQuery 等模块解 析需要的节点数据。

  • 返回的是JSON 字符串或其他字符串,可通过编写正则表达式提取所需信息。

  • 返回的是加密后的数据,则需要解密后才能解析。

3.3 数据保存

数据保存是对解析后的数据进行保存。如果把采集到的数据放在内存里,一旦关 闭程序,数据就丢失了,因此我们需要把爬取到的数据保存到本地。

保存的形式有以 下几种:

  • 保存为文本文件。一些文字类型的信息,如小说内容,可保存成 TXT 文件。
  • 保存为图片、音视频等二进制文件。如一些多媒体资源可保存为这种格式。
  • 保存到 Excel 表格中。其好处是直观,而且方便不了解编程的读者使用。
  • 保存到数据库中。数据库又分为关系型数据库和非关系型数据库

4.我的爬虫学习路线

1.每天进步一点点------爬虫应用场景相关推荐

  1. 【初学疑惑】开发者工具可信度高吗?Python爬虫实战场景

    本篇博客是一个小小的 Python 爬虫实践,重点为解释在 Python 爬虫实战过程中,浏览器的开发者工具和代码抓取的网页源码,存在数据差异. 翻译一下就是开发者工具和爬虫采集到的源码,不一样. 本 ...

  2. 久等了~史上最全爬虫采集场景终于来了

    前嗅每天都接到很多数据采集的需求,虽然来自不同行业.网站及企业,不过各需求的采集场景都有很多类似之处.小编结合大家的数据采集需求,总结了以下几种爬虫常见的数据采集场景. 1.实时采集并更新新增数据 对 ...

  3. Python爬虫应用场景大全

    相信很多人都知道Python,也有很多人知道Python爬虫,那么Python爬虫到底能干什么.下面简单罗列了下Python爬虫的应用场景,希望对Python爬虫感兴趣的朋友有所帮助. Python场 ...

  4. 每天进步一点点---------kibana/Grafana场景2小学排名折线

    场景2 小学期间排名折线图 小红是转眼到了六年级了,妈妈说不会总结的孩子不是好孩子,你做一个折线图,看看小学的成绩是一直上升呢还是下降呢? 使用postMan创建了一个xiaohong的index,数 ...

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

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

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

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

  7. 独辟蹊径做爬虫,使用Jquery+Chrome Extension,让浏览器成为你的数据收集器 公众号文章自动离线

    本文更新中,敬请期待 本文阅读条件: 基本的Python, javascript知识,希望你了解一点点爬虫知识,大神可无视. 写在最前: 现在使用爬虫技术有较大法律风险,务必注意使用场景,本文仅供学习 ...

  8. python高级—— 从趟过的坑中聊聊爬虫、反爬、反反爬,附送一套高级爬虫试题

    前言: 时隔数月,我终于又更新博客了,然而,在这期间的粉丝数也就跟着我停更博客而涨停了,唉 是的,我改了博客名,不知道为什么要改,就感觉现在这个名字看起来要洋气一点. 那么最近到底咋不更新博客了呢?说 ...

  9. python高级—— 从趟过的坑中聊聊爬虫、反爬、反反爬,附送一套高级爬虫试题...

    前言: 时隔数月,我终于又更新博客了,然而,在这期间的粉丝数也就跟着我停更博客而涨停了,唉 是的,我改了博客名,不知道为什么要改,就感觉现在这个名字看起来要洋气一点. 那么最近到底咋不更新博客了呢?说 ...

最新文章

  1. 制作Windows Mobile程序安装包
  2. 在 Azure 网站上使用 Memcached 改进 WordPress
  3. /etc/inittab
  4. Ubuntu下设置电信拨号上网(10.04版)
  5. Codeforces Beta Round #16 (Div. 2 Only)【未完结】
  6. 网页前端套java数据_【java】网页/移动前端需要的数据,最好一个接口包含所有数据么?...
  7. 第四范式获信通院尖峰开源项目及开源人物双料大奖
  8. 用于计算机安全防护的有,《计算机安全防护》PPT课件.ppt
  9. 動態語句的使用方法(exec/sp_executesql)
  10. android系统开发实验,基于Android智能手机的实验管理系统的设计与实现
  11. 看完这一篇,运维误删后再也不用跑路了
  12. Macbook M1电脑安装svn及使用
  13. 与计算机相关的统计表格,统计信息化 Excel与SPSS应用pdf
  14. 计算机处理技术职业道德与论文,关于计算机职业道德的论文选题 计算机职业道德毕业论文题目怎样定...
  15. Win7 Hotfix KB2685811 (64-bit)疑难杂症状之解药
  16. 从零开始的Win10系统设置
  17. ArcGIS 每天一个高级制图技巧:5 lyr和UpdateLayer方法实现样式复用
  18. 【男保姆式】教你打开第一个微信小程序
  19. dell电脑如何安装ubuntu系统_戴尔T630安装Ubuntu操作系统及Gaussian 09
  20. 双非一本考研国防科技大学计算机,【21择校】这些高校不歧视双非,保护一志愿!...

热门文章

  1. 运算放大器节点电压方程_高速放大器设计三大常见问题,TI 帮您攻克!
  2. android UiAutomator写一个QQ小号给大号点赞的case
  3. GIS领域竞赛整理(不完全统计)
  4. crout分解计算例题_初中数学因式分解习题大全(建议父母给孩子收藏直接打印)...
  5. 教你如何买手机 – 行货、水货知识大普及
  6. Visual Studio 代码自动补全
  7. 如何使用DOS命令行查询端口
  8. Delphi 如何在ActionManager要如何新增一个Category?
  9. 自建网页项目-蚁族财富网-记录20
  10. JSP中枚举的遍历和Jquery填充后台传入数据