试听课

10/2/2022 网络爬虫

讲师介绍:石璞东,计算机硕士,人民邮电出版社签约作者,《智能前端技术与实践》作者,百度飞桨领航团金牌团长,阿里云乘风者计划专家博主

考试科目:883 《C程序设计》(第五版)谭浩强,清华大学出版社

参考资料:《C程序设计(第五版)》谭浩强

# 前言

你好,我是石璞东。

想必你已经知道了Python这门编程语言的火爆程度,曾几何时,你可能会见到类似 Python将被纳入高考内容计算机等级考试新增Python程序设计人工智能时代,你还不会Python嘛? 等的新闻头条,毫无疑问,人工智能时代,Python将占据不可或缺的地位!

2021年10月TIOBE公布的编程语言排行榜单中,Python力压群雄,位居榜首!

# 计算机编程语言的分类

  • 机器语言
    • 概念:计算机能直接识别和接受的二进制代码成为机器指令,机器指令的集合就是机器语言,如10010011,我们可以将其理解为人类社会发展的原始阶段;
    • 操作方法:当编写完成用0和1组成的指令后,需要用纸带穿孔机以人工的方法在特制的黑色纸带上穿孔,在指定的位置上有孔代表1,无孔代表0,一个程序往往需要一卷长长的纸带,在需要运行此程序时,就将此纸带装在光电输入机上,当光电输入机从纸带读入信息时,有孔处产生一个电脉冲,指令变成电信号,让计算机执行各种操作;
    • 特点:
      • 优点:直接执行,速度快,资源占用少;
      • 缺点:可读性、可移植性差,编程复杂;
  • 汇编语言
    • 概念:又称“符号语言”,即用一些英文字母和数字表示一个指令,如用ADD表示加法操作,用SUB表示减法操作,LD表示“传送”,显然,计算机并不能直接识别和执行符号语言的指令,需要使用一种称为汇编程序的软件,将符号语言的指令转换为机器指令;
  • 高级语言
    • 按转换方式分类:编译型语言、解释型语言;
    • 按客观系统描述分类:面向过程语言、面向对象语言;
    • 按编程范型分类:命令式语言、函数式语言、逻辑式语言、面向对象语言;

「注」:参考链接:https://www.liuchuo.net/archives/130

相比于CC++Java等,Python语言更易于学习,其语法简单、代码定义更为清晰,具有丰富的模块,如PyQtDiangorequestsBeautifulSoupseleniumPyMongoPillowjiebaNumpyPandasMatplotlibscikit-learn等,支持互动模式,最重要的是,在某些特定场景中,我们可以通过编写CC++完成对代码运行速度较高的任务,并在Python程序中完成调用。

img

本系列教程将包含Web前端、数据分析及其可视化、网络爬虫、OpenCVDeep Learning等!

「注」:本课程采用Python3作为开发版本。

# Python应用领域

  • 人工智能

Python在人工智能大范畴领域内的机器学习、神经网络、深度学习等方面都是主流的编程语言,神经网络框架,如TensorFlowPyTorchpaddlepaddle等均有Python版本语言的实现。

  • 云计算

云计算服务形式包含IaaS(Infrastructure-as-a-structure,基础设施即服务)Paas(Platform-as-a-Service,平台即服务)Saas(Software-as-a-Service,软件即服务),而这三种服务类型中的IaasSaas需要用到OpenStack来搭建,该云计算管理平台正是通过Python语言编写的。

  • 数据分析

随着NumPySciPyMatplotlib等众多程序库的开发和完善,Python越来越适合于做科学计算和数据分析了。它不仅支持各种数学运算,还可以绘制高质量的2D3D图像。和科学计算领域最流行的商业软件Matlab相比,PythonMatlab所采用的脚本语言的应用范围更广泛,可以处理更多类型的文件和数据。

  • 网络爬虫

Python语言很早就用来编写网络爬虫。Google 等搜索引擎公司大量地使用Python语言编写网络爬虫。从技术层面上将,Python提供有很多服务于编写网络爬虫的工具,例如urllibSeleniumBeautifulSoup等,还提供了一个网络爬虫框架Scrapy

  • Web开发

Python经常被用于Web开发,尤其随着PythonWeb开发框架逐渐成熟,如DjangoFlaskTurboGearsweb2py等,程序员可以更轻松地开发和管理复杂的Web程序。例如,通过mod_wsgi模块,Apache可以运行用Python编写的Web程序。Python定义了 WSGI标准应用接口来协调HTTP服务器与基于PythonWeb程序之间的通信。举个最直观的例子,全球最大的搜索引擎Google,在其网络搜索系统中就广泛使用Python语言。另外,我们经常访问的豆瓣网,也是使用Python实现的。

  • 游戏开发

很多游戏使用C++编写图形显示等高性能模块,而使用PythonLua编写游戏的逻辑。和Python相比,Lua的功能更简单,体积更小;而Python则支持更多的特性和数据类型。除此之外,Python可以直接调用Open GL实现3D绘制,这是高性能游戏引擎的技术基础。事实上,有很多Python语言实现的游戏引擎,例如PygamePyglet以及Cocos 2d等。

  • 网络编程

Python提供了丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如ZopeMnetBitTorrentGoogle都在广泛地使用它。

  • 自动化运维

这几乎是Python应用的自留地,作为运维工程师首选的编程语言。在很多操作系统里,Python是标准的系统组件。大多数Linux发行版和Mac OS都集成了Python,可以在终端下直接运行PythonPython标准库包含了多个调用操作系统功能的库。通过pywin32这个第三方软件包,Python能够访问WindowsCOM服务及其它WindowsAPI。使用IronPythonPython程序能够直接调用.NetFramework。一般说来,Python编写的系统管理脚本在可读性、性能、代码重用度、扩展性几方面都优于普通的shell脚本。

# 案例展示

  • 豆瓣电影 🎬 Top 250票房信息
  • 新冠肺炎疫情数据分析
  • 当当书城信息获取(基于Scrapy框架)
  • 今日街拍美图获取
  • IMDB信息抓取
  • 百度小说《霸道总裁爱上我》全文抓取
  • Bilibili弹幕抓取及词云图制作
  • 视频网站抓取
  • 滑动验证码破解
  • JS逆向:王力宏《大城小爱》热评抓取
  • ......