(一)Python起源
    Python诞生于20世纪90年代初,是一种跨平台的计算机程序设计语言,是一种解释型、面向对象、动态数据类型的高级程序设计语言,是最受欢迎的程序设计语言之一。Python的 创 始 人 为 荷 兰 人吉多·范·罗 苏 姆(GuidovanRossum)。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。任职于google。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是取自英国20世纪70年代首播的电视喜剧《蒙提.派森的飞行马戏团》(MontyPython’sFlyingCircus)。
    (二)Python应用
    Python提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文 本 等 大 量 内 容,被 形 象 地 称 作“内 置 电 池(batteriesincluded)”。Python还有大量的第三方库,也就是别人开发的,供你直接使用的东西。当然,如果你开发的代码通过很好的封装,也可以作为第三方库给别人使用。Python适合开发哪些类型的应用呢?首选是网络应用,包括网站、后台服务等等;其次是许多日常需要的小工具,包括系统管理员需要的脚本任务等等;另外就是把其他语言开发的程序再包装起来,方便使用。
    (三)Python优点
    简单易学,语法优美:注重的是如何解决问题而不是编程语言的语法和结构,适合作为编程入门语言。
    丰富强大的库:开源社区活跃,开发者编写并开源功能强大的Python库。
    开发效率高:因为有了丰富强大的库,在可移植性、可扩展性方面都非常出众。
    应用领域广泛:Web开发、网络编程、自动化运维、Linux系统管理、数据分析、科学计算、人工智能、机器学习等等。
    (四)Python不足
    第一个缺点是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。
    第二个缺点是Python的GIL锁限制并发。Python对多处理器支持不好。GIL是指Python全局解释器锁(Global Interpreter Lock),当Python的默认解释器要执行字节码时,都需要先申请这个锁。这意味着,如果试图通过多线程扩展应用程序,将总是被这个全局解释器锁限制。当然,我们可以使用多进程的架构来提高程序的并发,也可以选择不同的Python实现来运行我们的程序。
    第三个缺点是Python2.X和Python3.X不能完全兼容。

    (一)基础知识介绍下载.png
    下载 (1).png下载 (2).png
    (一)网络爬虫
    网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
    (二)网络爬虫的核心工作
    通过网络向指定的URL发送请求,获取服务器响应内容。
    2.使用某种技术(如正则表达式、XPath等)提取页面中我们感兴趣的信息。
    3.高效地识别响应页面中的链接信息,顺着这些链接递归执行此处介绍的第1、2、3步;
    4.使用多线程有效地管理网络通信交互。
    (三)网络爬虫的核心工作分析
    1. 向URL发送请求,获取服务器响应内容。这个核心工作其实是所有网络爬虫都需要做的通用工作。一般来说,通用工作应该由爬虫框架来实现,这样可以提供更稳定的性能,开发效率更高。
    2. 提取页面中我们感兴趣的信息。这个核心工作不是通用的!每个项目感兴趣的信息都可能有所不同,但使用正则表达式提取信息是非常低效的,原因是正则表达式的设计初衷主要是处理文本信息,而HTML文档不仅是文本文档,而且是结构化文档,因此使用正则表达式来处理HTML文档并不合适。使用XPath提取信息的效率要高得多。
    3. 识别响应页面中的链接信息。使用正则表达式可以实现这个核心工作,但是效率太低,使用XPath会更高效。
    4.多线程管理:这个核心工作是通用的,应该由框架来完成。