Python爬虫新手村上手指南①

445 阅读4分钟

前言

定位

爬虫初学者,具备Python基础和前端相关知识

开发环境:

win10操作系统

Python解释器3.8

集成开发环境PyCharm

PyCharm

PyCharm 是一款功能强大的 Python 编辑器。

PyCharm 的下载地址:

www.jetbrains.com/pycharm/dow…

professional 表示专业版,community 是社区版,推荐安装社区版,因为是免费使用的。

具体安装步骤,详见菜鸟教程,在此不做赘述:

www.runoob.com/w3cnote/pyc…

目的

学习爬虫思想和方式

数据的来源及作用

现在是一个数据为王的时代,掌握了数据,就掌握了话语权。

数据来源:

①用户生产数据

譬如,百度指数

index.baidu.com/v2/main/ind…

②政府统计的数据

譬如,中国政府网

www.gov.cn/shuju/chaxu…

③数据管理公司

譬如:聚合数据

www.juhe.cn

④自己爬取的数据

爬取数据,自己做数据分析

数据的作用:

①数据分析

数据分析,提供有力的证据。

②智能产品练习数据

譬如,机器学习,图片识别。需要很多图片练习,才能像人一样去识别。

爬虫的概念及应用领域

什么是爬虫?

使用编程语言,所编写的一个用于爬取web或app数据的应用程序。

详情请见,百度百科:

baike.baidu.com/item/%E7%BD…

譬如:百度快照,后台程序从Internet上爬取数据,保存在自己的服务器上。百度后台在不断抓取这样的数据。

还有,抢票软件的后台应用。

如何爬取数据及robots协议

怎么爬取数据

①找到要爬取的目标网站,发起请求

②分析URL是如何变化的和提取有用的URL

③提取有用的数据

爬虫数据能随便爬取吗?

爬虫是否违法,取决于爬取什么样的数据。爬取公共数据是可以的,不要去触碰私人的数据

爬取数据的时候,需要遵守Robots协议

譬如,百度的Robots协议

www.baidu.com/robots.txt

网站内容的所有者是网站管理员,搜索引擎应该尊重所有者的意愿,为了满足以上等等,就需要提供一种网站和爬虫进行沟通的途径,给网站管理员表达自己意愿的机会。有需求就有供应,robots协议 就此诞生。

爬虫的分类

①通用网络爬虫

下载整个互联网上的资源,譬如各大搜索引擎。

百度,Google等搜索引擎,从一些初识的URL扩展到整个网站。

主要为门户站点搜索引擎和大型网站服务采集数据

②聚焦网络爬虫(主题网络爬虫)

又称主题网络爬虫,选择性地爬行,根据需求的主题相关页面的网络爬虫

③增量式网络爬虫

对已下载网页采取增量式更新知识和只爬行新产生或者已经发生变化的网页爬虫

④深层网络爬虫

大部分内容不能通过静态的URL获取,隐藏在搜索表单后的,只有用户提交一些关键词才能获取的网络页面。

网络爬虫的原理

①通用网络爬虫的原理

初始URL

待爬取的URL

读取URL并解释网页内容

数据入库

获取新URL

判断新URL是否满足停止条件

②聚焦网络爬虫的原理

初始URL

待爬取的URL

读取URL并解释网页内容

数据入库

获取新URL

获取新URL后,筛选URL,判断是否符合待爬取的提交

为什么用Python语言写爬虫

PHP

PHP是世界上最好的语言,但他天生不是做这爬虫的材料,因为它对多线程,异步支持的不是很好,

并发处理能力弱。爬虫是工具性程序,对速度和效率要求比较高。

Java

是Python爬虫最大的竞争对手。但是Java语言本身很笨重,代码量很大。重构成本比较高,任何修改会导致代码大量改动。爬虫经常要修改采集代码。

C/C++

运行效率是无敌的。但是学习和开发成本高。写个小爬虫查询可能要大半天时间。

Python

语法优美,代码简洁,开发效率高,支持的模块多。Python胶水语言的特性。

相关的HTTP请求模块和HTML解析模块非常丰富。

还有scrapy和scrapy-redis框架让我们开发爬虫变量异常简单。