美文网首页
网络爬虫1day

网络爬虫1day

作者: Crld | 来源:发表于2018-11-15 16:53 被阅读0次

    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

          本文链接:https://www.haomeiwen.com/subject/vmnyfqtx.html