爬虫基础
一. 爬虫基础
网络爬虫(Crawler)又被称为网页蜘蛛(Spider),网络机器人,它是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本
名词解释
-
URL:Uniform Resource Locator,即统一资源定位符,也就是我们说的网址,统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址
-
超文本:hypertext,文本+图片+音视频
-
http:hyper text transfer protocol,超文本传输协议, 就是服务器和客户端进行数据交互的一种形式
-
https:HyperText Transfer Protocol over Secure Socket Layer,以安全为目标的http通道,http下加入ssl层
-
cookies:cookies在浏览器端,在访问动态网页时浏览器会自动附带上它发送给服务器,服务器通过识别cookies并鉴定其是哪个用户,判断其是否登录状态,然后返回对应的响应
-
robots.txt协议:全称是“网络爬虫排除标准”(Robots Exclusion Protocol),君子协议。规定了网站中哪些数据可以被爬虫爬取哪些数据不可以被爬取,在网址后加/robots.txt可查看
网络中信息传输的加密方式
- 对称秘钥加密
- 非对称秘钥加密
- 证书秘钥加密
网络爬虫用途
-
主要用途:数据采集
-
其他用途:12306抢票、各种抢购、投票、刷票、短信轰炸、网络攻击、Web漏洞扫描器
爬虫带来的风险
- 爬虫干扰了被访问网站的正常运营
- 爬虫抓取了收到法律保护的特定类型的数据或信息
爬虫在使用场景中的分类
通用爬虫:搜索引擎和web服务商用的爬虫系统。抓取系统重要组成部分,抓取的是一整张页面数据
聚焦爬虫:是"面向特定主题需求"的一种网络爬虫程序,是建立在通用爬虫的基础之上。抓取的是页面中特定的局部内容
增量式爬虫:检测网站中数据更新的情况,只会抓取网站中最新更新出来的数据
反爬机制VS反反爬策略
反爬机制:门户网站,可以通过制定相应的策略或者技术手段,防止爬虫程序进行网站数据的爬取
反反爬策略:爬虫程序可以通过制定相关的策略或者技术手段,破解门户网站中具备的反爬机制,从而可以获取门户网站中相关的数据
爬虫代理:
- 代理网络用户去取得网络信息
- 代理的作用:突破自身IP访问限制,访问团体内部资源,提高访问速度,隐藏真实IP
- 爬虫代理可以获得较好的爬取效果(防止被封禁或输入验证码登录)
爬取数据的类型:
- Html代码
- Json字符串(api接口,手机端大部分是这种数据格式)
- 二进制文件(图片,音频,视频等)
- 各种扩展名的文件:CSS,JavaScript,各种配置文件等
二. 爬虫流程
-
指定URL
-
User-Agent伪装:将爬虫对应的请求载体身份标识伪装成某一款浏览器
-
请求参数处理
-
-
发起请求,获取响应数据
-
urllib
-
requests
-
selenium
-
-
提取信息
-
正则表达式
-
beautiful soup
-
xpath
-
-
保存数据
#保存数据到本地示例
#保存文本数据
with open('./sogou1.html','w',encoding='utf-8') as fp:
fp.write(page_text)
#保存json对象数据
import json
with open('./sogou1.html','w',encoding='utf-8') as fp:
json.dump(page_json,fp=fp,ensure_ascii=False) #ensure_ascii=False表示不进行ascii编码
#保存二进制数据
with open('./sogou1.jpg','wb') as fp:
fp.write(page_bytes)