chapter1-爬虫那些事

背景

这个事情还要从Google或者百度说起。目前的搜索引擎,一般都拥有自己的一套网页检索算法,方便大家迅速的找到需要的网页。但是,当我们在使用各种搜索引擎的时候,是否思考过这样一个问题:搜索引擎是如何搜索到最新网页的信息,并且展现在搜索结果页上的呢?答案就是网页爬虫。

百度蜘蛛,是百度搜索引擎的一个自动程序。它的作用是访问收集整理互联网上的网页、图片、视频等内容,然后分门别类建立索引数据库,使用户能在百度搜索引擎中搜索到您网站的网页、图片、视频等内容。 ——来源·百度百科《百度蜘蛛》

在最初,网页爬虫技术似乎就只是为搜索引擎服务的:一方面是搜索引擎的技术性需要,另一方面是当时的互联网信息,还没有这么庞大,最终的一点是,当时的用户对及时性服务还不是这么迫切。但是现在,网页爬虫早已挣脱了之前的技术局限性,被广泛的应用在各个领域中。例如前阵子大放光彩的“即刻”APP,其核心就是网页爬虫技术。

网页爬虫在不断发展中也产生了很多的新颖并且实用的框架,也从当初的特定编程语言,变成了现在的五花八门,各放异彩的编程语言。然而,在众多的编程语言中,Python无疑是最为重要,也是最为广泛的语言,这期达人课,我们就以Python 作为我们的主力编程语言,助力我们的“起飞”。

Python介绍

无论你之前学过什么语言,无论你是否了解Python,在正式学习本课程前,你需要告诉自己:Python作为高级编程语言,哪怕你没有编程的基础,你也可以高傲而且自豪地去使用它!

在这里插入图片描述

本门课程无意争辩到底哪门语言的效率最高,亦或是哪个编程语言是最好的。选择Python 作为本门课程的主力编程语言的理由主要有以下原因:

  • Python 简单易学,初学者在什么都不了解的情况下,都可以很好的上手;
  • Python 自带的封装接口,以及丰富的第三方库大大简化了我们的开发流程,一些看上去很难实现的功能,往往一行代码就能够搞定;
  • 基于Python 开发的网页爬虫框架众多,方便我们以后的深入学习。

Python 给自己的定义,就是一个“胶水”语言:哪里需要哪里用。或许和C++、Go等一些语言相比,Python 的运行速度很慢,但是需要指出的是,这里的“速度慢”,仅仅是相比较而言。例如,发送邮件,使用C++需要0.1秒,Python 则需要1秒。虽然速度相差10倍,但是作为日常开发而言,Python 的速度已经完全满足了我们的开发要求。

在这里插入图片描述

热度

Python 网络爬虫技术本身发展特别快,甚至可以说,网页爬虫技术随着Python 的发展而发展。从最初Python 自带的urllib 库,到现在流行的BeautifulSoup4、Selenium 等第三方框架。可以说,在网络爬虫的世界中,Python 一直处于”最强王者“的地位。
在这里插入图片描述

此图来自于百度指数(2018年4月23日)。可以发现的是,从2014年开始,Python 爬虫的搜索指数呈大幅上升的趋势,也同时应征了Python 在网页爬虫领域上的地位。

在这里插入图片描述

在全球知名的Github 网站上,搜索“爬虫”,有5077项使用Python 写的网页爬虫项目,比排名第二的java多出了将近3.5倍!

为什么学习网页爬虫
  • 从互联网技术发展的角度来看,越来越多的公司开始拥抱Python 技术栈。与此相对应的是,越来越多的公司也开始提供了类似Python 网页爬取工程师、分布式网页爬取架构师等工作职位。Python 爬虫技术已经成为互联网公司不可或缺的技术方向;
  • Python 网页爬虫所包含的技术栈,包含了Python 基础操作、HTML 结构分析、计算机网络特性等互联网公司正在使用的技术,学习Python 网页爬虫技术,可以很好地侧类旁通了解其他技术;
  • 网页爬虫技术在日常生活中有很大的用处,学习网页爬虫技术可以帮助我们更好的“享受生活”。

这个课程可以学到什么

早些时候由于个人兴趣原因研究并使用了Python,在使用时发现,国内关于Python 网页爬虫的教程虽然很多、内容丰富,但是往往涉及到特别多的前期准备,并不适合Python 新人上手。为了帮助一位学弟尽快的入手网页爬虫技术,我自己总结了自己的网页爬虫学习路线,结合他的实际应用,做出了一套适合新手入门学习的Python 网页爬虫教程。在这套教程的帮助下,学弟很快掌握了核心的技术栈,并且顺利的完成了我对他的毕业要求。

本期达人课,首先介绍Python 和网页的一些基础知识,带你快速的学习Python 的基础语法,再一起讨论网页爬虫框架的使用,如何通过邮件或者短信发送我们需要的信息,最后使用我们学到的技术实现一个在服务器运行的成绩通知短信系统,进行实战演练。

需要强调的是,Python 网页爬虫技术栈经过近几年的发展,可以说已经自成一脉。如果要将这些技术全部展现出来,不仅工作量巨大,而且涉及的技术对于新手也太过深奥。因此,本期达人课涉及的知识仅仅包含了Python 网页爬虫的一小部分,同时因为作者的能力有限,所包含的技术还较为浅显。如有不当,还希望各位多多见谅,提出修改建议。

适合阅读的人群

该系列文章适合以下人群阅读:

  • 刚学完Python 基础课程,希望做一个有趣的实战项目的人员
  • 对Python 网页爬虫感兴趣,希望尽快上手核心技术的开发人员
  • 希望做一个提高生活效率的在校学生或其他人员

在学习本课程之前,希望你有一些基础的开发技能,例如:独立的用C++写出一个从1加到10的控制台程序。

开发环境:

  • JetBrains PyCharm 2017.3.3 x64 (也可以使用其他IDE)
  • Python 3.5

使用到的软件:

  • MySQL
  • fidder4
  • Requests
  • BeautifulSoup 4

专栏列表

  • 关于网页爬取那些事儿
  • Python 极速教程
  • 网页基础知识一点通
  • 爬取你的第一个网页
  • 使用网页爬虫利器—Requests
  • 让BeautifulSoup4 提高你的效率
  • 让MySQL帮你保存指定的信息
  • 使用Python 的邮件模块发送信息
  • 使用短信接口发送信息
  • “天上的馅饼”:免费的短信通知方式
  • 让你的系统全天候为你服务
  • 让你拥有“火眼金睛”的fiddr4和其他工具
  • 实战成绩通知短信系统(上)
  • 实战成绩通知短信系统(上)
  • 常见的反爬虫和反反爬虫技术
  • 项目总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/419288.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5G_射频测试_测试模式解读(三)

Downlink test models FR1 test model 1.1 (NR-FR1-TM1.1)(满PRB,QPSK)FR1 test model 1.2 (NR-FR1-TM1.2)( QPSK/boosted/40% QPSK)FR1 test model 2 (NR-FR1-TM2)(64QAM 只有1个PRB 功率最低)FR1 test model 2a (NR-FR1-TM2a) )(256QAM 只…

循序渐进学 JavaScript <二>

续 <一> 九、JavaScript常见内置类 9.1 原始类型的包装类 基本数据类型也可以调用属性 在理论上来说它们是没有办法获取属性或者调用方法的 原始类型是简单的值&#xff0c;默认并不能调用属性和方法js 为了可以使其获取属性和调用方法&#xff0c;对其封装了对应的包装…

mybatis 项目启动异常 TypeException: Could not resolve type alias ‘xxxxxBean‘.

mybatis 项目启动异常 TypeException: Could not resolve type alias ‘xxxxxBean’. 异常问题 详细报错在文后 实际有用的报错提示&#xff1a; Caused by: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is file [xxxxMapper.…

java SSM项目预算生成管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM项目预算生成管理系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的 源代码和数据库&#xff0c;系统主…

经典目标检测YOLO系列(二)YOLOV2的复现(1)总体网络架构及前向推理过程

经典目标检测YOLO系列(二)YOLOV2的复现(1)总体网络架构及前向推理过程 和之前实现的YOLOv1一样&#xff0c;根据《YOLO目标检测》(ISBN:9787115627094)一书&#xff0c;在不脱离YOLOv2的大部分核心理念的前提下&#xff0c;重构一款较新的YOLOv2检测器&#xff0c;来对YOLOV2有…

【设计模式】责任连模式怎么用?

我将通过一个贴近现实的故事——请假审批流程&#xff0c;带你了解和掌握责任链模式。 什么是责任链模式&#xff1f; 责任链模式是一种行为设计模式&#xff0c;它让你可以避免将请求的发送者与接收者耦合在一起&#xff0c;让多个对象都有处理请求的机会将这个对象连成一条…

LINUX常用工具之sudo权限控制

一、Sudo基本介绍 sudo是Linux 中用于允许特定用户以超级用户或其他特权用户的身份执行特定的命令或任务。sudo 提供了一种安全的方法&#xff0c;使用户能够临时获取额外的权限&#xff0c;而不需要以完全超级用户的身份登录系统。sudo也可以用了设置黑名单命令清单&#xff…

[陇剑杯 2021]简单日志分析

[陇剑杯 2021]简单日志分析 题目做法及思路解析&#xff08;个人分享&#xff09; 问一&#xff1a;某应用程序被攻击&#xff0c;请分析日志后作答&#xff1a; 黑客攻击的参数是______。&#xff08;如有字母请全部使用小写&#xff09;。 题目思路&#xff1a; 分析…

Haxe-UnrealEngine5

Haxe-UnrealEngine5 结论 UE C header > External/**.hx.hx > .h/.cpp&#xff0c;和 UE C 一起编译使用 hxcpp 来调试 .hx good&#xff1a; 理论上不仅限反射代码走 UE C&#xff0c;无需维护 backend&#xff0c;比如 Lua Binding理论上接近 UE C 的性能 bad&…

71.工作中redis的常用场景总结

文章目录 一、简介二、统计访问次数三、缓存四、分布式锁五、限流六、排行榜七、作为Session的存储器&#xff0c;存用户登录状态八、位统计九、生成全局ID 一、简介 Redis作为一种优秀的基于key/value的缓存&#xff0c;有非常不错的性能和稳定性&#xff0c;无论是在工作中&…

台达PLC程序远程上下载 远程在线调试原来是使用了博达V900远程透传模块

准备工作 一台可联网操作的电脑一台单网口的远程透传网关及博达远程透传配置工具网线一条&#xff0c;用于实现网络连接和连接PLC一台台达PLC及其编程软件ISPSoft一张4G卡或WIFI天线实现通讯(使用4G联网则插入4G SIM卡&#xff0c;WIFI联网则将WIFI天线插入USB口&#xff09; …

Python圣诞主题绘图:用turtle库打造冬日奇妙画面【第31篇—python:圣诞节】

文章目录 Python圣诞主题绘图导言代码结构概览详细解析drawlight函数tree函数xzs函数drawsnow函数五角星的绘制 完整代码代码解析总结 Python圣诞主题绘图 导言 圣诞季节是个充满欢乐和创意的时刻。在这个技术博客中&#xff0c;我们将深入探讨如何使用Python的turtle库创建一…