网络爬虫1day

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:告诉浏览器,当前请求,是从那个页面发起的

你可能感兴趣的:(网络爬虫1day)