前言:该系列为爬虫基础,适合没有接触过python或刚刚起步的同学,如有错误,欢迎指出。
–爬虫的定义:
通过编写程序,模拟浏览器行为浏览网页,获取互联网上的数据,也称为蜘蛛,如:百度;谷歌,都是爬虫。
注意:
爬虫是python的一个分支或者说方向,个人自学python(爬虫)两年,从0-1,一步一步走来,明白其中的辛苦,若你没有大毅力,就不要自学了;给初学者的建议:第一语言不要学习python,(个人见解,不喜勿喷)。
–爬虫的分类:
通用爬虫:获取的只是一个url(网址)下的页面数据;
聚焦爬虫:根据指定的需求获取页面中指定的局部数据;
增量式爬虫:用来监测网站数据更新的情况。
–概念混淆:
反爬机制:网站可以采用相关的技术手段或者策略阻止爬虫对网站的数据获取(代码报错)。
反反爬策略:让爬虫程序伪装(破解)网站限制并获得数据。
–robots协议:君子协议,里面限制了哪些可爬,哪些不可爬,但是你可以不用遵守。
如淘宝下的robots.txt : https://www.taobao.com/robots.txt
–爬虫流程的概括:
获取网页源码 ===》urllib、requests
提取所需要的业务数据 ==》BeautifulSoup、xpath、css选择器、pyquery
保存数据 ===》 json、csv、txt(文件存储)等;
自动化程序
–URL(统一资源定位符,俗称网址)
URL的全称感兴趣的可以了解一下,我们主要解释一下它是做什么的,我们每天网上冲浪,百度了解一下,我们在浏览器的输入框=》www.baidu.com 这就是url。
如:https://github.com/favicon.ico,我们用URL来唯一指定它的访问方式,这其中包括了访问协议https、访问路径和资源名称,通过这样的链接,我们便可以从互联网上找到资源,这就是url.
–超文本(HTML)
你打开一个网址如:www.baidu.com;你所看见的页面正是通过html以及其他的语言渲染出来的,我们右击->查看网页源代码;或者按F12你会发现有代码出现,里面就包括HTML代码。
–HTTP/HTTPS协议介绍
概念:HTTP协议就是服务器端(网站的服务器)与客户端(自己的电脑)之间进行数据交互的一种方式。
HTTP工作原理:HTTP协议工作在客户端-服务端交媾之上的;浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求;Web服务器根据接收到的请求后,向客户端发送响应信息。
常见的请求头信息:
accept:浏览器通过这个头告诉服务器,它所支持的数据类型Accept-Charset: 浏览器通过这个头告诉服务器,它支持哪种字符集
Accept-Encoding:浏览器通过这个头告诉服务器,支持的压缩格式
Accept-Language:浏览器通过这个头告诉服务器,它的语言环境
Host:浏览器通过这个头告诉服务器,想访问哪台主机
If-Modified-Since: 浏览器通过这个头告诉服务器,缓存数据的时间
Referer:浏览器通过这个头告诉服务器,客户机是哪个页面来的 防盗链
Connection:浏览器通过这个头告诉服务器,请求完后是断开链接还是何持链接
X-Requested-With: XMLHttpRequest 代表通过ajax方式进行访问
User-Agent:请求载体的身份标识常见的响应头信息:
Location: 服务器通过这个头,来告诉浏览器跳到哪里
Server:服务器通过这个头,告诉浏览器服务器的型号
Content-Encoding:服务器通过这个头,告诉浏览器,数据的压缩格式
Content-Length: 服务器通过这个头,告诉浏览器回送数据的长度
Content-Language: 服务器通过这个头,告诉浏览器语言环境
Content-Type:服务器通过这个头,告诉浏览器回送数据的类型
Refresh:服务器通过这个头,告诉浏览器定时刷新
Content-Disposition: 服务器通过这个头,告诉浏览器以下载方式打数据
Transfer-Encoding:服务器通过这个头,告诉浏览器数据是以分块方式回送的
Expires: -1 控制浏览器不要缓存
关于怎么查看请求头信息/响应头信息,我会在后面出专门的文章来解惑。
关于HTTPS协议定义:HTTPS 安全超文本传输协议,HTTPS是在HTTP上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版。
HTTPS的加密算法算法包括(简略):
对称密钥加密
非对称密钥加密
证书密钥加密
–cookies简单介绍介绍
Cookie 是浏览器访问服务器后,服务器传给浏览器的一段数据;
浏览器需要保存这段数据,不得轻易删除;
此后每次浏览器访问该服务器,都必须带上这段数据,这样才能证明你就是你;
详情了解请自行百度,后续会介绍cookies的用法。