一、爬虫的原理
1、互联网的概念:互联网是由网络硬件(网线,路由器等)和网络软件(防火墙,浏览器等)连接了一台台的计算机组合而成的,就像一张蜘蛛网一样。
2、互联网的意义:互联网的核心价值在于数据的交互,数据本来都是存于一台台计算机的硬件设备中的,因为有了互联网,可以实现彼此之间数据的传输与共享。
3、爬虫的工作方式:模拟浏览器发送请求(requests,selenium) => 下载页面代码 => 只提取有用的数据(bs4,xpath,re) => 存放于数据库或文件中(文件,excel,mysql,redis,mongodb)。
4、小结爬虫:就是向服务端发起请求,获取并分析提取有用数据的程序。
二、爬虫的基本流程:发起请求 => 获取响应 => 解析内容 => 保存数据
三、请求的组成
1、请求地址:
①通过浏览器调试
②使用抓包工具
2、请求头:分析页面,比较复杂
①'user-agent':一般都需要,代表客户端的配置
②'cookie':代表登录状态
3、请求体:分析页面,比较复杂
4、请求方式:
①分析页面,相对容易
②常用的请求方式:<post,get>
-:post与get的请求参数都可以放在url后面
-:post的请求参数还可以放在请求体内
--:登录信息,上传文件等数据都会被放在请求体内
--:输入错误的登录信息再提交,就可以看到请求体的的结构,而正常登录后通常会跳转,就无法捕捉了
③非常用的请求方式:<head,put,patch,delete,opthons>
四、响应的格式
1、json格式:转为字典
2、xml格式:转为字典
3、html格式:正则匹配,bs4,xpath等
4、加密的未知格式
五、提高性能的方式
1、多进程:计算密集型适用
2、多线程:受制于cpython的GIL机制,io密集型适用
3、线程内协程
4、使用scrapy框架