拖拖拉拉终于开了新坑, 三月份就下好的资料一直拖到现在才动手实践,充分说明懒拖本质,再谴责下去没有意义,交代一下学习方式,每日跟视频做笔记,上手实战代码,复盘梳理。论文点及选体量目标合适的小练手项目。争取六月底前,更完这波视频吧。
1.爬虫前奏:
·爬虫案例:搜索引擎(爬别人的网页-收录)/伯乐在线(爬别人的文章)/惠惠购物助手(爬取历史价格-进行对比)/数据分析与研究(各行业趋势)/抢票软件
·介绍网络爬虫-模拟请求人类请求网站行为的程序+可自动请求网页+抓取数据+提取有价值信息
·通用/聚焦 爬虫
前者搜索引擎(抓取所有网页-形成互联网镜像)|后者特定需求,筛选内容,只抓取需求相关的网页信息
·爬虫技术选择-python
-PHP 多线程、异步支持不太好,并发处理能力弱
-Java 本身语言笨重,代码量大,重构成本高
-C/C++ 学习开发成本高
-python Scrapy+Scrapy-redis
*总结:爬虫需要速度效率高、经常修改采集代码、HTTP请求模块和HTML解析模块要求高~
针对本视频准备工具:python3.6+Pycharm 2017 pro(非com版本) +虚拟环境(virtualenv/virtualenvwrapper)
2.http协议和chrome抓包工具
·http协议和https协议:
前者 超文本传输协议 发布接收的方法 服务器端口为 80 | 后者是前者的加密版本,加了SSL层,端口为 443 端口
·浏览器发http请求的过程
1.地址URL→,浏览器向HTTP服务器发送HTTP请求(Get/Post两种方法)
2.输入地址URL→浏览器发Request请求获取该网址的html文件,服务器吧Response文件对象返回给浏览器
3.浏览器分析Response中的HTML,发现其中引用了资源文件(images/CSS/JS等),再次发送Request去获取这些资源文件
4.文件资源下载成功后,网页根据HTML语法结构显示出来。
·URL详解
Uniform Resource Locator -统一资源定位符 结构:
e.g:python_百度搜索的网址就是
https://www.baidu.com/s?wd=python&rsv_spt=1...(后部分省略)
https是代表协议,www.baidu.com是域名系统DNS绑定了IP,端口省略了,path就是s,wd=python就是查询字符串,关键字为python。
·锚点介绍,百度百科里面,加#
·补充:在浏览器中请求url,会进行编码,除英文字母/数字/部分符号外,其他全部使用‘%+十六进制码值’进行编码。
常用请求方法-post/get(有八种,仅介绍常用两种)
+get 获取数据,不对服务器资源产生任何影响
+post 发送数据(登录)/上传文件等,对服务器资源产生影响
具体查看爬取对象的-反爬虫机制
·请求头常见参数: 向服务器发送一个请求,数据分三部分(放入url-数据放入body+post请求中-数据放入head中)
User-Agent:默认为python,浏览器名称,设置为浏览器的值,伪装爬虫
Referer:请求是从哪个url过来的
Cookie:http协议无状态,发送两次请求无法查看两次是否来自同一个,用cookie作为标识,登录才能访问的网站 需要发送cookie信息
·常见响应状态码:
301举例:jingdong-jd
谷歌抓包工具
老师一波秀,get了几个小操作,这里不展示了。主要是谷歌浏览器,按F12,然后切换标签内的一些东西。
这一堂课就到这里了。明天可以回顾一下,然后再跟下一部分的课。