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      
为了舒适的结果,眼前的坎坷路程即使再长都是值得的。
原文地址:https://www.cnblogs.com/abudrSatan1998/p/13676333.html