今日内容概要

  • 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

html续篇及初识爬虫的更多相关文章

  1. python爬虫从入门到放弃(一)之初识爬虫

    整理这个文档的初衷是自己开始学习的时候没有找到好的教程和文本资料,自己整理一份这样的资料希望能对小伙伴有帮助 什么是爬虫? 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页 ...

  2. python爬虫系列之初识爬虫

    前言 我们这里主要是利用requests模块和bs4模块进行简单的爬虫的讲解,让大家可以对爬虫有了初步的认识,我们通过爬几个简单网站,让大家循序渐进的掌握爬虫的基础知识,做网络爬虫还是需要基本的前端的 ...

  3. Python爬虫--初识爬虫

    Python爬虫 一.爬虫的本质是什么? 模拟浏览器打开网页,获取网页中我们想要的那部分数据 浏览器打开网页的过程:当你在浏览器中输入地址后,经过DNS服务器找到服务器主机,向服务器发送一个请求,服务 ...

  4. python爬虫之路——初识爬虫三大库,requests,lxml,beautiful.

    三大库:requests,lxml,beautifulSoup. Request库作用:请求网站获取网页数据. get()的基本使用方法 #导入库 import requests #向网站发送请求,获 ...

  5. python爬虫之路——初识爬虫原理

    爬虫主要做两件事 ①模拟计算机对服务器发起Request请求 ②接收服务器端的Response内容并解析,提取所需的信息 互联网页面错综复杂,一次请求不能获取全部信息.就需要设计爬虫的流程. 本书主要 ...

  6. python爬虫---从零开始(一)初识爬虫

    我们开始来谈谈python的爬虫. 1,什么是爬虫: 网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕虫.互联网犹如一个大蜘蛛 ...

  7. 爬虫基础spider 之(一) --- 初识爬虫

    爬虫概念 (spider,网络蜘蛛)通过互联网上一个个的网络节点,进行数据的提取.整合以及存储.从而获取我们想要的部分 robots协议 robots协议不是技术层面的协议,只是一个君子协定: 首先在 ...

  8. 【python爬虫】初识爬虫

    一.爬虫的定义 爬虫定义:程序或者脚本——自动的爬取万维网的数据的程序或者脚本. 二.爬虫可以解决的问题 1.解决冷启动问题. 2.搜索引擎的根基——通用爬虫. 3.帮助机器学习建立知识图谱. 4.制 ...

  9. python自动化开发-[第二十三天]-初识爬虫

    今日概要: 1.爬汽车之家的新闻资讯 2.爬github和chouti 3.requests和beautifulsoup 4.轮询和长轮询 5.django request.POST和request. ...

随机推荐

  1. python if-elif-else 判断

    #!/usr/bin/python #coding=utf-8 #好好学习,天天向上 age=12 if age<4: price=0 elif age<18: price=40 elif ...

  2. Java流程控制02:Scanner进阶

    Scanner进阶使用 import java.util.Scanner;​public class Demo04 {    public static void main(String[] args ...

  3. 解决No artifacts

    前言:maven管理项目时显示No artifacts 错误: 第一步:找到Artifacts 第二步:点击添加 第三步:点击exploded,然后点击应用即可 注意: 名字1和名字2一定要相同 最后 ...

  4. HTTPS的基本使用

    1.https简单说明 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的 ...

  5. IDEA中Git的一般使用场景

    感谢大佬:https://www.cnblogs.com/javabg/p/8567790.html 工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下: 假设小组中有两个人,组长小张,组员小 ...

  6. Ajax接收服务器返回的信息response

    Ajax可以向服务器发起请求,有去的方式,那么久必然可疑返回. 服务器返回的信息也可以通过Ajax接收. Ajax共有5种状态: 1.创建对象,没有调用open方法 2.对象发起请求http,已经调用 ...

  7. AI模型运维——NVIDIA驱动、cuda、cudnn、nccl安装

    目前大部分使用GPU的AI模型,都使用的英伟达这套. 需要注意的是,驱动.cuda.cudnn版本需要一一对应,高低版本互不兼容. 驱动和cuda对应关系:https://docs.nvidia.co ...

  8. 一招教你IDEA中Java程序如何打包,以及打包后如何运行

    前言 编写程序 程序打包 测试运行 IDEA作为目前按最主流的Java程序项目编写工具,越来越受到开发人员的青睐.idea因为其五花八门的功能,让你在开发过程中效率显著提高.那么对于初学者来说,如何通 ...

  9. 前端表单标签form 及 简单应用

    今日内容 form 表单(重点) 后端框架之 flask 简介 内容详细 form 表单 1.作用 form 表单可以在前端获取用户输入的数据并发送给后端(服务端) 2.input 标签 获取用户数据 ...

  10. 基于containerd二进制部署k8s-v1.23.3

    文章目录 前言 k8s 组件 环境准备 创建目录 关闭防火墙 关闭selinux 关闭swap 开启内核模块 分发到所有节点 启用systemd自动加载模块服务 配置系统参数 分发到所有节点 加载系统 ...