zoukankan      html  css  js  c++  java
  • html续篇及初识爬虫

    今日内容概要

    • form表单

    • requests模块

      可以模拟浏览器朝服务端发送各式各样的请求

    • cookie与session

    • requests模块小案例(网站的基本防爬措施)

    今日内容详细

    form表单

    作用:能够获取前端用户输入的信息发送给后端
    
    以用户注册为例
    form表单重要的几个参数
         action
              控制数据提交到哪个后端
         method
              控制朝后端提交的请求方法
              form表单默认使用的是get请求
      获取用户输入需要使用input标签
       input标签一般情况下需要结合label标签一起使用
        但是不配合也不影响
        <label for="d1" class="c1"</label>
        用户名:<input type="text" class="c1" id="d1"><label for="">
         </label>
       
    input标签
        type属性
           text     普通文本
           password  密文展示
           date     日期
           radio    单选
           checkbox 多选
            redio和checkbox如果要设置默认选中加checked即可
            file  上传文件
            email 获取邮箱格式
            
            submit 触发提交数据的动作
            button 普通按钮 本身没有任何功能
            reset 重置输入
    select标签  下拉框
         一个个选项就是一个个的option标签
          默认是单选的
          加上multiple变为多选
          默认选中加selected
            
    textarea标签
              获取大段的文本输入
            
            
            
    

    标签两个非常重要的参数

    id
        类似于身份证号 同一个html页面中id不能重复
    class
        类似于面向对象里面的类的继承 一个标签可以有多个类
    

    requests模块

    爬虫的基本流程
           发送请求   获取响应  解析内容  保存数据
     requests模块
           能够模拟浏览器发送请求 比urllib模块更加方便
        该模块不是自带的模块需要提前下载
        pip3 install requests
    # 如果你下载的模块想指定版本 需要在模块名的后面加两个等号
    # pip3 install django== 1.11.11
    基本使用
         import requests
         # requests.get() # 朝服务端发送get请求
         # requests.post() # 朝服务端发送post请求    # res=requests.get("https://cn.bing.com/") 
       # res.encoding='utf-8' # 修改编码
       # print(res.text) # 获取页面HTML代码
       # with open(r'获取页面.html','w',encoding='utf-8')
    as f:
        # f.write(res.text)
        
     加请求头
          headers
     加携带的参数
          params
      
    如果涉及到转码需要模块
        from urllib.parse import urlencode
        res1 = urlencode(params,encoding='utf-8')
        print(res1)
        wd=%E7%BE%8E%E5%A5%B3
    

    简单的防爬措施

    1.校验当前请求者是否是一个浏览器
      USER-Agent:Mozilla/5.0(windows NT 10.0;WOW64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36  # 标识浏览器
      请求来了之后我们会先取请求头里面查看是否有携带user-Agent参数,如果携带了说明是一个浏览器如过没携带说明你是一个程序
    
    2.校验你当前的请求是否是本网站发出的
      Referer:https://www.lagou.com/ # 从哪儿来
      请求来了之后会去请求头中校验referer判断后面的网址是否输入我们的网址的
       如果不是也不会拒绝
       图片防盗链 
    

    cookie与session

    HTTP协议
    四大特性
         1.基于TCP/IP作用于应用层之上的协议
         2.基于请求响应
         3.无状态
         4.无连接
            
    无状态
        不保存用户状态,所有的用户无论来多少次对于服务端来说都是初见
    针对无状态的特点我们需要找到一种可以记录客户端状态的方法
         cookie
              保存在客户端浏览器上面的键值对
              就拿登录功能举例
                当你第一次输入了用户名和密码之后
                我的服务端会给你返回一个随机字符串
    你保存在浏览器上
                 之后再访问服务端的时候你把这个随机字符串带给我
                我来校验这个字符串跟我之前给你这个用户的是否
            username jason
            password 123
            
         session	
        	保存在服务端上面的键值对
          	给客户端一个随机的字符串
    参考博客网址:
        	https://www.cnblogs.com/Dominic-Ji/p/10886902.html      
    
    为了舒适的结果,眼前的坎坷路程即使再长都是值得的。
  • 相关阅读:
    Django之admin
    CSS弹性盒子
    SQL SERVER按多字段查找重复的数据并删除只保留一条
    计算机名称改名之后,tfs连接问题
    Docker镜像仓库Harbor部署
    搭建docker本地仓库
    部署docker swarm集群
    Dockerfile
    centos 7 安装docker 常用指令
    python软件安装-Windows
  • 原文地址:https://www.cnblogs.com/abudrSatan1998/p/13676333.html
Copyright © 2011-2022 走看看