崔庆才老师爬虫原理讲解笔记 |
您所在的位置:网站首页 › 崔庆才python3爬虫视频教程 › 崔庆才老师爬虫原理讲解笔记 |
目录:
一、什么是爬虫?二、爬虫的基本流程三、什么是Request和Response?四、Request中包含什么?五、Response中包含什么?六、能抓怎样的数据七、解析方式八、为啥我抓到的和浏览器看到的不一样?九、怎么解决JavaScript渲染的问题?十、怎样保存数据?
一、什么是爬虫?
简单来说就是:请求网站并提取数据的自动化程序。(个人理解就是我们点击网页浏览的过程) 操作:右键--->审查元素(如若想提取链接信息的话,就要从这些htm代码提取文字和链接信息,用解析库解析以上的信息,存成结构化的数据) 1.请求方式: 主要有GET、POST两种类型,另外还有HEAD、PUT、DELETE、OPTIONS等。 2.请求URL URL全程统一资源定位符,如一个网页文档、一张图片、一个视频都可以用URL唯一来确定 3.请求头 包含请求时的头部信息,如User-Agent、Host、Cookies等信息。 4.请求体 请求时额外携带的数据,如表单提交时的表单数据(Eg:fromdata) 五、Response中包含什么?1.响应状态 有多重响应状态,如200代表成功、301是跳转、404为找不到网页、502服务器错误 2.响应头 如内容类型、内容长度、服务器信息、设置Cookie等等; 3.响应体 最主要的部分,包含了请求资源的内容,如网页HTML、图片二进制数据等; #结果没有打印出来,大家可以自行尝试 import requests response = requests.get('http://www.baidu.com') print(response.text)#响应体 print(response.headers)#响应头 print(response.status_code)#响应状态码 headers = {}#定义一个头部信息 headers = {Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36}#次头部信息为电脑自身信息 response1 = requests.get('http://www.baidu.com',headers = headers)#用新的headers请求百度 print(response1.status_code)#使用响应状态码进行检验 六、能抓怎样的数据1.网页文本(如HTML文档,JSON格式文本等) 2.图片(获取二进制文本文件,保存为图片格式) response2 = requests.get('https://www.baidu.com/img/bd_logo1.png')#抓取图片 print(response2.content)#打印出来为二进制格式 with open('F:/dd.png','wb')as f:#创建一个文件,格式为图片格式 f.write(response2.content) f.close#会出现705或是7787或是其他数字,检查所在目录下是否有dd.png这个文件就可以3.视频(同样为二进制文件,保存为音频格式即可,抓取方法如图片抓取方法) 4.其他(只要是能请求到的,都能获取) 七、解析方式1.直接处理(前提:网页构造简单) 2.Json解析 3.正则表达式 4.BeautifulSoup 5.PyQuery 6.XPath 八、为啥我抓到的和浏览器看到的不一样?Eg:http://m.weibo.com(可以使用第五中的代码演示) 由于JavaScript渲染的问题,在network看到的代码(我们通过Python)与element中看到(JavaScript渲染的)不一样 九、怎么解决JavaScript渲染的问题?1.分析Ajax请求(返回Json格式数据) 2.通过Selenium/WebDriver(做自动化测试)来模拟一个浏览器 https://www.cnblogs.com/zhaof/p/6953241.html(此网址为selenium.webdriver的使用) 3.Slansh https://github.com/scrapinghub/splash(有兴趣可以了解一下) 4.PyV8、Ghost.py 十、怎样保存数据?1.文本:纯文本、Json、Xml等 2.关系型数据库:如MySQL、Oracle、SQL Server等具有结构化表结构形式存储 3.非关系型数据库:MongoDB、Redis等Key-Value形式存储 4.二进制文件:如图片、视频、音频等等直接保存成特定格式即可 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |