URI(Uniform Resource Identifier):统一资源标识符
URL(Uniform / Universal Resource Locator的缩写):统一资源定位符,是用于完整地描述Internet上网页和其他资源的地址的一种标识方法。
URN(Universal Resource Name):统一资源名称,只命名资源而不指定如何定位资源
HTTP请求主要分为Get和Post两种方法
GET是从服务器上获取数据,POST是向服务器传送数据
GET请求参数显示,都显示在浏览器网址上,HTTP服务器根据该请求所包含URL中的参数来产生响应内容,
POST请求参数在请求体当中,消息长度没有限制而且以隐式的方式进行发送,通常用来向HTTP服务器提交量比较大的数据
GET;请求指定的页面信息,并返回实体主体
post;向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
常用的请求报头 1. Host (主机和端口号)
Host:对应网址URL中的Web名称和端口号,用于指定被请求资源的Internet主机和端口号,通常属于URL的一部分。
HTTP响应也由四个部分组成,分别是: 状态行、消息报头、空行、响应正文
Cookie:通过在 客户端 记录的信息确定用户的身份
Session:通过在 服务器端 记录的信息确定用户的身份。
Cookie 和 Session: 服务器和客户端的交互仅限于请求/响应过程,结束之后便断开,在下一次请求时,服务器会认为新的客户端。
常见状态码:
100~199:表示服务器成功接收部分请求,要求客户端继续提交其余请求才能完成整个处理过程。
2xx:表示服务器成功接收请求并已完成整个处理过程。
200(OK 请求成功)。
3xx:为完成请求,客户需进一步细化请求。例如:请求的资源已经移动一个新地址、 常用
301: 永久重定向
302:临时重定向(所请求的页面已经临时转移至新的url)
4xx:客户端的请求有错误.
400:错误请求,服务器无法解析请求
401:未授权,没有进行身份验证
403:服务器拒绝访问
404:服务器无法找到被请求的网页
408:请求超时
5xx:服务器端出现错误
500:服务器内部错误
501:服务器不具备完成请求的功能
503:服务器不可用
大数据库时代:数据库如何产生?
(1),大的公司大的企业:通过用户产生数据
(2).大的数据平台:通过收集或者和其他企业或者公司合作
(3).国家政府/大的机构:通过省县乡或者其他方式统计或者汇总产生的
(4).数据咨询公司:通过收集或者和其他企业或者公司合作,会根据数据操分析形成报表,给你做数据参考(
(5).最终加入以上方式都不能满足的时候。我们就需要一个爬虫工具工程师,去串门做数据的提取
1.什么是爬虫》
就是一段自动获取互联网数据的程序
2.爬虫有什么用途
(1)搜索引擎
(2)比价工具(蕙蕙购物助手)
(3)大的资讯网站(jobbole,今日头条)
网站的三大特性:
(1).每一个资源都一个url(统一资源定位符),是唯一的
(2).网页都是使用HTML(超文本)文本展示数据的
(3).通过HTTP/HTTPS(超文本传输协议),获取和传递HTML
3.如何实现一个爬虫
(1)找到目标url
(2)根据url发起请求
(3)解析相应结果
a)提取目标数据
b)如何存在新的url,进一步提取(会执行1-3这个循环)
(4).爬虫结束:所有符合条件url请求全部完毕,意味着爬虫结束
4.为什么要使用python做爬虫?
PHP,java,c/c++,python.....
PHP:可以用来做爬虫,但是对多任务的支持不是太好,爬虫是对象驴要求比较高的,所以说PHP天生不是干这个事情的
JAVA:生态圈很完善,并且用途很广泛(后端,移动端)JAVA做爬虫是PYTHON最大的竞争对手,但是JAVA代码量比较大,重构成本比较高
c/c++:肯定是可以完成成爬虫这件事的,并且运行的效率是非常
高的,但是学习的门槛非常高,各个模块可能需要你自己封装和定
制,(能使用c/c++的人一般非常NB)
python:语言简介,代码优美,可读性高,并且对各个模块的支持比较好,有很多强大的三方包,对多任务的处
理比较好,urlib,requsets都能很好的帮助我们完成一爬虫的项目
解析也非常多(lxml,bs4,puquery),并且还有强大的scrapy爬虫框架和scrapy——redis分布式爬虫框架,
并且python作为一门胶水语言,对于其他语言的调度也是非常方便
爬虫分为俩类:
通用爬虫:通用爬虫是浏览器的重要组成部分,将联网所有的网页下载到本地
做了一个镜像备份,提取重要数据(过滤数据,分词,,去广告等等)
步骤其实跟上面介绍的类似
搜索引擎的爬取的url通过什么获取?
(1)通过网站的外链
(2.)通过网页提交url(百度http://zhanzhang.baidu.com/linksubmit/url)
(3.)各大搜索引擎公司也会和DNS服务商合作
DNS:将我们的域名化为ip的一种技术
通用爬虫的缺点:
(1)需要遵从robot协议:robots协议(也成为爬虫协议
(2)搜索引擎返回的结果千篇一律没有很好的针对性,不能够特殊的用户群提返回对应的数据,
(3)搜索引擎一般情况下获取的文本信息,处理图像,音频,视频多媒体还是有困难的
聚焦爬虫:是面向主题的爬虫,是由需求产生的,是一种定向爬虫,
在爬取网页数据的时候,会对网页进行筛选,保证只抓取,和需求相关的数据,
以后我们更多的就是实现聚焦爬虫
做爬虫需要掌握的基本知识:
(1)python的基本语法
(2)HTML前端知识
(3)数据持久话的知识
(4)了解基本的反爬手段(header请求头,验证码,cookies,代理)
(5)静态页面和动态页面(ajax,js),selenium(获取页面的源码是经过浏览器渲染之后的最终结果)
(6)多任务处理,爬虫框架,分布式爬虫等等
HTTP:c超文本的传输协议,主要是用来将html文本传输到本地浏览器
https:作用和HTTP一致,只是多了SSL(安全套接字层)
请求头:
USer-AGent:模拟浏览器加载
Coolies:携带Collkies第一可维持会话,告诉浏览器用户的身份信息
Refers:告诉浏览器,当前请求,是从那个页面发起的