这本书可以了解爬虫体系!
流程:抓取页面---分析页面---存储数据
正则替换技巧变成json格式
MongoDB[2]是一个介于和非关系数据库之间的产品,是非关系数据库当中功能最丰富最像关系数据库的。?卧槽
5、存储库(与数据库交互)
6、web库安装(搭建api接口,维护代理池)
flask tornado(Tornado 是一个支持异步的Web 框架通过使用非阻塞I / O 流,咜可以支撑成千上万的开放连接效率非常高)
7、app爬取相关库安装
8、框架安装(高效,大量)
docker容器技术应用和环境打包,类似app的‘应用’复制到其他docker,一台机器运行多个应用共享操作系统。
Scrapyd 的安装:Scrapyd 是一个用于部署和l运行Scrapy 项目的工具 有了它,你可以将写好的Scrapy 项目上傳到云主机并通过API 来控制它的运行
HTTP和HTTPS:访问资源协议类型
请求:请求方法(post),请求网址(url)请求头(User-Agent),请求体(data)
响应:状态码(200)响应头(应答信息),响应体(正文pieview)-爬虫目标
爬虫概述:爬取网页-提取数据-存(自动化)
html,json图片,视频音频。能看到都能抓
Cookies: 里面保存了登录的凭证有了它,只需要在下次请求携带Cookies 发送
请求而不必重新输入用户名、密码等信息重新登录了
登录后才能访问解决:session(服务器)和cookie(客户端)
会话:有始有终的一系列消息/动作,比如打电话的过程称为一个会话
代理:中介(突破自身限制提高速喥,隐藏真实ip)
代理来源:网上免费付费购买,adsl拨号(拨下换下稳定性高)
timeout参数设置超时时间超过时间没响应,抛出异常不指定就默认(等同None)
session对象维持会话(get和post都能用),用于模拟登录后的下一步操作
ssl证书 代理设置 身份认证
compile封装更快,不怕重复使用
提取分组然後group(1)提取
非贪婪:.*?(尽可能短)
re.S不怕换行符,re.I大小写不敏感转义\.
sub('匹配',‘修改',字符串')修改文本,可以修改后让findall使用更方便
json库的dumps()实现字典的序列化yeild方法,用for……in……打印和存储,调用函数
1、xpath:强大,*表示所有,/text()获取文本小心换行修正, contains()多属性获取
csv 注意定义头类似excel表头
mysql连接,创建表插入,查询
MongoDB:连接指定库,指定集合插入,查询count()计数
redis:连接,键操作……
原理:局部刷噺(1.发送请求2.解析内容(类似requet请求,常用的是json)3.渲染页面(动态DOM)
点击开发者工具XHR,分析请求分析响应。 response看真实数据
1、selenium 声明浏览器对象,访问页面查找节点(单或多),
动作链:拖拽键盘按键
延时等待 推荐显示等待 wait=WebDriverWait(brower,10),等待10s,有很多等待条件如按钮出现,文字加载成功……
通过lua脚本控制页面加载过程完全模拟浏览器
2、极验滑动验证码 selenium+人(圖像识别)(采用直接模拟浏览器动作的方式来完成验证)难难难!
3、点触验证码 selenium (谁是白百何),第三方接口
4、微博宫格验证码 selenium (解锁)字典模板暴破
实战:代理抓微信公众号
cookies池搭建 直接访问一些json接口,浏览器访问非法
原理 charles代理服务器 抓包,分析