作业

作者: 小袋鼠cf | 来源:发表于2018-12-18 20:41 被阅读0次

    1.什么是爬虫?

    答:网络爬虫机器人,以互联网自由抓取数据的程序

    2.爬虫的基本流程?

    1)分析网站,得到新的url
    2)根据url,发起请求获取HTML网页源码
    3)从页面提取数据
    a.提取到目标数据,对数据进行筛选和持久化储存
    b.从页面提取新的url地址,继续执行第二操作
    4)爬虫结束

    3.网页的三大特征?

    a.每一个网页都有唯一的url来进行定位
    b.网页都是通过HTML文本来显示的
    c.所有的网页都是通过HTTP(HTTPS)协议来进行传输的

    4.通用爬虫和聚焦爬虫?

    通用爬虫:是搜索引擎的重要组成部分;尽可能的将互联网上所有的网页都下载到本地,进过预处理(去噪,分词,去广告),
    最后将数据存储到本地,做一个镜像备份形成一个检索系统。
    聚焦爬虫:是面向主题的爬虫,在爬取数据的过程中对数据进行筛选,通常只会爬取与需求相关的数据

    5.Robot.txt是什么?里面的参数是什么意思?

    就是一个规范,告诉搜索引擎,哪些目录下的资源允许爬虫,哪些目录下的资源不允许爬虫
    "user-agent":这项值用来表示是哪家的搜索引擎
    "allow":允许被爬取的url
    "disallow":不允许被爬取的url

    6.七层协议?

    应用层:为用户的应用程序提供网络服务的(http,https,ftp....)
    表示层:负责端到端的数据信息可以被另一个主机理解和识别,并且按照一定的格式将信息传递到会话层
    会话层:是管理主机之间的会话进程,负责建立、管理和终止会话进程
    传输层:进行数据传输的(tcp,udp)
    网络层:路由器
    数据链路层:网桥 交换机
    物理层:网线 网卡 集线器 中继器

    7.http和https协议

    HTTP协议(超文本传输协议):是用于从网络传送超文本数据到本地浏览器的传送协议
    HTTPS协议:是HTTP的安全版,在HTTP协议的基础上加入SSL层。SSL(Secure Sockets Layer 安全套接层)主要用于Web的安全传输协议,
    在传输层对网络连接进行加密,保障在Internet上数据传输的安全。
    HTTPS的安全基础是SSL,因此通过它可以传输的内容都是经过SSL加密的,主要作用是:
    建立一个安全有效的信息传送通道,保证数据传送的安全性
    确定网站的真实性和有效性
    HTTPS比HTTP更安全,但是性能更低。

    8.url的基本组成部分?

    协议、域名、路径、参数
    scheme:协议(例如:http, https, ftp)
    host:服务器的IP地址或者域名
    port#:服务器的端口(如果是走协议默认端口,缺省端口80)
    path:访问资源的路径
    query-string:参数,发送给http服务器的数据
    anchor:锚(跳转到网页的指定锚点位置)

    9.发起一个请求的基本流程?

    1)用户在浏览器输入一个URL之后,首先经过DNS服务器把域名解析为对应的
    IP返回给客户端。
    2)客户端通过IP请求服务器,服务器收到请求后检索获取对象,最后返回一个
    页面给客户端。

    10.get请求和post请求的区别?

    GET是从服务器上获取数据,POST是向服务器传送数据
    GET请求参数显示,都显示在浏览器网址上,HTTP服务器根据该请求所包含URL中的参数来产生响应内容,
    即“Get”请求的参数是URL的一部分。
    POST请求参数在请求体当中,消息长度没有限制而且以隐式的方式进行发送,通常用来向HTTP服务器提交量比较大的数据
    (比如请求中包含许多参数或者文件上传操作等),请求的参数包含在“Content-Type”消息头里,指明该消息体的媒体类型和编码.

    11.请求头参数和响应头里面的参数?

    发起请求:
    会携带请求头:
    User-Agent:模拟浏览器进行请求
    Cookies:存储在浏览器里面的,使用cookie表明用户身份
    Refere:说明当前的请求是从哪个页面发起的
    Content-Type (POST数据类型)
    Host (主机和端口号)
    X-Requested-With: XMLHttpRequest(表示是一个Ajax异步请求)
    Connection (链接类型) Connection:表示客户端与服务连接类型
    Upgrade-Insecure-Requests (升级为HTTPS请求)
    Accept (传输文件类型)
    Accept-Encoding(文件编解码格式)
    Accept-Language(语言种类)
    Accept-Charset(字符编码)指出浏览器可以接受的字符编码。
    响应头参数:
    Cache-Control:must-revalidate, no-cache, private。(是否需要缓存资源)
    Connection:keep-alive(保持连接)
    Content-Encoding:gzip(web服务器支持的返回内容压缩编码类型)
    Content-Type:text/html;charset=UTF-8(文件类型和字符编码格式)
    Date:Sun, 21 Sep 2016 06:18:21 GMT(服务器消息发出的时间)
    Expires:Sun, 1 Jan 2000 01:00:00 GMT(响应过期的日期和时间)
    Pragma:no-cache 这个含义与Cache-Control(是否缓存资源)等同。
    Server:Tengine/1.4.6(服务器和服务器版本)
    Transfer-Encoding:chunked这个响应头告诉客户端,服务器发送的资源的方式是分块发送的。
    Vary: Accept-Encoding告诉缓存服务器,缓存压缩文件和非压缩文件两个版本

    12.请求常见的状态码?

    200:请求成功
    301:永久重定向
    302:临时重定向
    400:客户端错误
    401:未授权
    403:服务器拒绝访问
    404:页面未找到
    405:请求方式错误
    408:请求超时
    500:服务器错误
    503:服务器不可用

    13.bytes类型和str字符串类型的相互转换,bytes和bytearray的区别?

    bytes类型转变成str字符串类型用decode,str字符串类型转变成bytes类型使用encode;
    bytearray是可变的,bytes是不可变的。

    14.如何发起一个get请求?

    from urllib import request

    • 目标url
      url = 'http://www.baidu.com/'

    • 使用urlopen方法模拟浏览器发起请求
      response = request.urlopen(url)

    • 从response响应结果中获得参数
      code = response.status
      print(code)

    b_html = response.read()
    print(b_html)

    相关文章

      网友评论

          本文标题:作业

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