本专栏是以杨秀璋老师爬虫著作《Python网络数据爬取及分析「从入门到精通」》为主线、个人学习理解为主要内容,以学习笔记形式编写的。
本专栏不光是自己的一个学习分享,也希望能给您普及一些关于爬虫的相关知识以及提供一些微不足道的爬虫思路。
专栏地址:Python网络数据爬取及分析「从入门到精通」
随着互联网的迅速发展,万维网已成为大量信息的载体,越来越多的网民可以通过互联网搜索引擎获取所需要的信息。
事实上,市面上通用的搜索引擎是存在一定局限性的:
那么如何有效地提取并利用这些写从互联网上获取的信息呢?面对这一巨大的挑战,定向爬去相关网页资源的网络爬虫应运而生。
网络爬虫又被称为网页植株或网络机器人,它是一种按照一定的规则,自动爬取万维网信息的程序或者脚本。
网络爬虫根据既定的爬取目标,有选择的访问万维网上的网页与相关链接,获取所需要的信息;
根据使用场景,网络爬虫可分为通用网络爬虫和定向网络爬虫:
网络爬虫按照系统结构和实现技术分类:
实际的网络爬虫通常是由几种爬虫技术相结合实现的。
网络数据分析通常包括前期准备、数据爬取、数据预处理、数据分析、可视化绘图、分析评估6个步骤。
其中,数据爬取又主要分为以下四个步骤:
HTTP即超文本传输协议的英文缩写,其英文全称是Hypertext Transfer Protocol。
它是互联网上应用最为广泛的一种网络协议,主要用于服务器与客户机之间传输超文本文件。
所有的WWW文件都必须遵守这个协议。
HTTP是一个客户端和服务器端请求和应答的标准,其中,客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其他工具,客户端发起一个到服务器制定端口(默认端口为80)的HTTP请求。
上图所示的是HTTP协议的原理图,通常包括两部分:
HTML即超文本标记语言的英文缩写,其英文全称是Hypertext Markup Language。
它是用来创建超文本的语言,用HTML创建超文本文档称为HTML文档,它能独立于各种操作系统平台。
由于“HTML标签”的便捷性和实用性,HTML语言也就被广大用户和使用者认可,并被当做万维网信息的表示语言。
使用HTML语言描述的文件需要通过Web浏览器显示效果。
最新的HTML版本为HTML5,它拥有强大的灵活性,能编写更为高端的动态网页。
上图使用Python代码简单写的一个登录网页及浏览器显示结果。
事实上,HTML文档的源码包含大量的“<…>”和“…>”,我们称之为标记(Tag)。标记用于分割和区分内容的不同部分,并告知浏览器它处理的是什么类型的内容。
大多数HTML标记的名字都能准确地描述其用途以及所标注内容的类型,比如:
下面给出的是通常的网页格式
<!DOCTYPE html>
<html name="整体">
<head name="头部">
<title name="眼睛">标题</title>
</head>
<body name="身体">内容</body>
</html>
HTML的标记包含在一对尖括号(<>)之间,以便与普通文本明确区分开。
第一个点括号(<)表明标签的开头,随后是特定标签名(如img),最后是反向尖括号(>)表示结束。
注:由于Python网络爬虫需要分析网页的HTML源码其树形结构,所以在编写爬虫之前必须掌握HTML基础知识。
Python是荷兰人Guido van Rossum在1989年开发的一种脚本新解释语言,是一种面向对象的解释型计算机程序设计语言。
Python是纯粹的自由软件,其语法简洁清晰,特色之一是强制使用空白符(White Space)作为语句缩进。
由于Python具有丰富而强大的第三方库,所以常被昵称为“胶水语言”,它能够把用其他语言制作各种模块(尤其是C/C++)很轻松的联合在一起。
Python作为一门语法清晰,易于学习功能,强大的编程语言,既可以作为面向对象语言应用于各领域,也可以作为脚本编程语言处理特定的功能,并且Python语言含有高效率的数据结构,与其他的面向对象编程语言一样,具有参数、列表、函数、流程控制、类、对象、正则表达式等功能。
因此,Python凭借其诸多优点,进而成为一种能在多种功能,多种平台上撰写脚本及快速开发的理想语言。
由于Python具有语法清晰简单、易学短小、精炼高效开发、拥有数量庞大的第三方库和活跃的开发社区等特点,越来越被广大的开发人员和编程爱好者所选择,同时,随着网络数据爬取的火热,Python提供了更加丰富的第三方库,如urllib、BeautifulSoup、Selenium、Scrapy等。
接下来就跟着博主一起走进Python数据爬取的知识海洋吧!
感谢阅读