厦门蓝典网站建设,wordpress搭建技术论坛,中国建筑官网站,郴州网站建设哪个好文章目录 一、什么是爬虫#xff1f;二、爬虫的分类三、网址的构成四、爬虫的基本步骤五、动态页面和静态页面六、伪装请求头七、requests库介绍1. 概念#xff1a;2. 安装方式#xff08;使用镜像源#xff09;#xff1a;3. 基本使用#xff1a;4. response对象对应的方… 文章目录 一、什么是爬虫二、爬虫的分类三、网址的构成四、爬虫的基本步骤五、动态页面和静态页面六、伪装请求头七、requests库介绍1. 概念2. 安装方式使用镜像源3. 基本使用4. response对象对应的方法 一、什么是爬虫
通俗讲爬虫就是解放人的双手去互联网获取数据保存数据到本地或者数据库保存格式如常见的txt、excel、csv、pdf、zip、jpg、mp3、mp4等等。
本质爬虫本质是模拟浏览器向服务器发送网络请求接受服务器放回的数据保存数据。
二、爬虫的分类
通用爬虫比如百度、Google、搜狗等搜索引擎。聚焦爬虫根据指定的目标网址获取精准的价值数据并保存数据。
三、网址的构成
爬虫既然是模拟浏览器对网址发起请求那先给大家介绍一下网址的构成。
以该网址为例https://www.baidu.com/s?ieUTF-8wdpython
协议部分https为协议部分全称为超文本传输安全协议与之对应的还有http协议。两者区别是http是明文传输、https是密文传输后者安全性更高。域名部分域名又称为主机名通过域名就可以找到对应的这台服务器或者主机。域名本质是IP地址比如访问www.baidu.com其实访问的是某个IP地址。只是IP地址是一串数字不便记忆所以通过特殊的方式将IP地址转换为域名。路径部分我们访问某个服务器的信息比如百度的服务器其实就是拿到服务器上面某个文件夹里面的数据。类似于我们电脑一样服务器上面也有众多文件夹每个文件夹里面还有下级目录一层嵌套一层这就称为路径部分。路径在网址中是以“/”分隔开的以上述网址为例路径就是/s。如果有多级目录就是多个/分隔。参数部分参数就是我们访问网站的时候传递的关键字比如我们要访问百度服务器中图片里面的风景图片那请求的时候就要带上参数。参数和路径之间用“?”隔开如果传递多个参数每个参数之间用“”地址符连接。如上网址中ieUTF-8和wdpython就是传递的两个参数中间用“”连接。
四、爬虫的基本步骤
准备网址https://www.baidu.com/s?ieUTF-8wdpython。请求网址获取网站数据。解析数据解析价值数据。保存数据数据保存。
五、动态页面和静态页面
做爬虫项目时首先要做的就是查看当前网站是静态页面还是动态页面因为静态页面的数据是在当前页面的源码里面而动态页面数据不在当前源码一般是在另外的JS文件中存放。那如何区分网页是动态还是静态页面呢
打开浏览器。访问网址。网页空白处右键点击查看页面源代码。在网页源代码中搜索网页所展示的部分如果源码中都有则为静态页面否则是动态页面。
六、伪装请求头
多数网站对于爬虫技术是有限制的并不希望爬虫去访问他的数据一则是爬虫访问速率太快容易造成网站负载超荷二是爬虫并不是真实用户对于网站经营数据的分析和决策会造成干扰因而网站会出台各种手段限制爬虫而如果要使用爬虫技术则就要突破这些限制也就是反爬。常用反爬措施有
浏览器标识我们访问任何网站一般都是通过电脑或者手机使用浏览器来访问这样对方服务器就可以看到我们的设备型号以及浏览器型号比如通过Windows系统的电脑上的谷歌浏览器去访问某服务器对方就可以检测到我们的设备操作系统类型及浏览器版本类型等参数确定了是真实浏览器发送的请求才会给到数据。而爬虫直接访问的话对方会检测到所以我们要将自己伪装成浏览器发起请求也就是将用户代理user-agent的值改为浏览器型号。反爬字段上面我们说过爬虫是模拟浏览器直接请求网址的也就是给到他指定的网址就可以对该网址发起请求。比如我们访问淘宝之后搜索某商品然后点开其中一个商品需要抓取这个商品相关的信息。那就将该商品页面网址复制下来然后用爬虫请求。但是这样是拿不到数据的很简单因为正常人去看到这个商品页面肯定是首先打开淘宝搜索商品之后继而点击该商品才可以看到。而爬虫直接就访问了该网址很明显是反常的。所以网站有专门的反爬字段来检测这个字段是referer也就是来源的意思访问的网址页面是来源于哪里比如该商品页面是来源于淘宝那就一定要携带referer字段值为淘宝网址。如果不携带该字段则拿不到数据。cookiescookies就是用户登录后服务器返回给用户的标识信息在一定时间内用户再次访问该网站不需要登录就可以看到登录后的数据。比如我们访问淘宝要查看购物车中商品信息则需要输入用户名和密码登录登录后则可看到购物车数据。登录之后一段时间内不要再次登录也可以随时看到购物车信息因为我们之后的每次访问都是携带了第一次登录后服务器返回给我们的cookies身份标识故而不用每次都输入用户名密码登录。做爬虫项目时我们也会经常遇到需要登录的网站登录一次之后拿到cookies值将该cookies保存下来之后每次访问时候携带上即可。
注意任何爬虫项目都不得对网站运营造成影响否则等同于服务器攻击。所以在写爬虫项目时一定要对爬虫抓取频率和抓取数量加以限制。
七、requests库介绍
1. 概念
requests是非常强大的爬虫请求库可以解决日常90%的爬虫需求
2. 安装方式使用镜像源 pip install requests -i https://mirrors.aliyun.com/pypi/simple/ 3. 基本使用
导包import requests使用response requests.get(url, 反爬请求头) 注意请求拿到的response是一个对象不是网站原始数据response对象有众多属性和方法。
代码示例如下图所示 4. response对象对应的方法
获取网页源代码有两种方法A、text B、content.decode() 代码示例如下图所示 获取二进制数据【音乐、视频、图片】response.content 代码示例如下图所示 获取响应状态码【基本不用】response.status_code状态码是200表示请求成功 代码示例如下图所示 获取json数据【常用】response.json()网站数据很多都是json数据拿到数据需要将json转化为字典获取请求头headersresponse.request.headers可以查看我们发送给网站的请求头信息 代码示例如下图所示 获取响应头headersresponse.headers可以看到网站返回的响应头信息 代码示例如下图所示