一、什么是爬虫
沿着网络抓取自己数据:向网站发起请求,获取资源后分析并提取有用数据。通过模拟浏览器请求站点的行为,把站点返回的HTML代码、JSON数据、二进制数据(图片、视频)爬到本地,进而提取自己需要的数据,存放起来使用。
二、流程
模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中
1. 发起请求
使用http库项目标站点发起请求(Request)
通过url全球统一资源定位符,用来定义互联网上一个唯一的资源 例如:一张图片、一个文件、一段视频都可以用url唯一确定
网页的加载过程:加载一个网页,通常都是先加载document文档,
在解析document文档的时候,遇到链接,则针对超链接发起下载图片的请求
Request缺陷:不能执行JS和CSS代码
请求头:
Referrer:访问源
User-agent:合法用户
cookies:保存登录信息
请求体:
get:请求体没有内容
post:请求体是format data
2. 获取响应内容(Response)
响应状态码:
200:成功
301:跳转
404:文件不存在
403:无权限访问
502:服务器错误
response header
Set-Cookie:BDSVRTM=0; path=/:可能有多个,是来告诉浏览器,把cookie保存下来
Content-Location:服务端响应头中包含Location返回浏览器之后,浏览器就会重新访问另一个页面
3. 解析内容
解析html数据:regx,第三方解析库(Beautifulsoup:bs4,pyquery等);
解析json数据:json模块
解析二进制数据:以wb的方式写入文件
4. 保存数据
数据库、文件
三、selenium
工具:
请求库:requests,selenium(可以驱动浏览器解析渲染CSS和JS,但有性能劣势(有用没用的网页都会加载);)
解析库:正则,beautifulsoup,pyquery
存储库:文件,MySQL,Mongodb,Redis
三、Selenium