表单验证

Python爬虫笔记【一】模拟用户访问之表单处理(3)

随声附和 提交于 2019-11-29 14:18:37
学习的课本为《python网络数据采集》,大部分代码来此此书。   大多数网页表单都是由一些HTML 字段、一个提交按钮、一个在表单处理完之后跳转的“执行结果”(表单属性action 的值)页面构成。虽然这些HTML 字段通常由文字内容构成,但是也可以实现文件上传或其他非文字内容。这些都为抓取数据的阻碍所以放在了前面。废话不多说开搞。   1.HTTP基本接入认证 在发明cookie 之前,处理网站登录最常用的方法就是用HTTP 基本接入认证(HTTP basicaccess authentication) import requests from requests.auth import AuthBase from requests.auth import HTTPBasicAuth auth = HTTPBasicAuth('ryan', 'password') r = requests.post(url="http://pythonscraping.com/pages/auth/login.php", auth= auth) print(r.text) 虽然这看着像是一个普通的POST 请求,但是有一个HTTPBasicAuth 对象作为auth 参数传递到请求中。显示的结果将是用户名和密码验证成功的页面(如果验证失败,就是一个拒绝接入页面)。   2.一般表单处理 表单源码

正则得介绍和使用——表单验证

女生的网名这么多〃 提交于 2019-11-29 13:58:33
1、正则的概念   (1)js这门语言一开始诞生得目的是什么?       就是为了做表单验证。在JS未出现以前,表单的信息验证需要传输给后台,让后台做数据验证处理之后,再返回给前端页面处理的结果。在带宽有限的情况下,整个验证过程非常复杂,且耗时。       在使用JS做验证的过程中,一个简单的验证规则的实现非常的麻烦。      如:从杂乱的字符串中找数字 var str = "asd68asd687as6da78sd123123zcacas" var linshi=''; var arr=[] for(var i = 0 ; i < str .length ; i ++){ if(str.charAt(i)>=0&&str.charAt(i)<=9){ linshi+=str.charAt(i) }else{ if(linshi!=''){ arr.push(linshi) } } } if(linshi!=''){ arr.push(linshi) } console.log(arr)       如果我们使用正则呢? var arr = str.match(/\d+/g);      是的使用正则和使用传统的js代码都可以实现这个功能,但是是不是太繁琐了。   (2)、什么是正则?      正则表达式(regular expression)是一个描述字符规则的对象

前端 html篇

本小妞迷上赌 提交于 2019-11-29 13:40:23
web开发本质: html是一个标准,规定了大家怎么写网页 1.浏览器输入网址回车发生了什么事 1. 浏览器 给服务端 发送了一个消息2. 服务端拿到消息3. 服务端返回消息4. 浏览器展示页面 sever服务端 import socket ​ sk = socket.socket() ​ sk.bind(("127.0.0.1", 8080)) sk.listen(5) ​ while True: conn, addr = sk.accept() data = conn.recv(8096) conn.send(b"HTTP/1.1 200 OK\r\n\r\n") conn.send(b"<h1>Hello world!</h1>") conn.close() HTML 浏览器读取有一个file协议 <!DOCTYPE> 标签 ​ 声明必须是 HTML 文档的第一行,位于 标签之前 ​ </!doctype> ​ 声明不是 HTML 标签;它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。 ​ html是超文本标记型语言,属于cs架构 <!DOCTYPE html> #标准规范<html lang="en"><head> #html头 <meta charset="UTF-8"> #字符编码 <title>Title</title> #页面头部显示内容<

前端之后html

ε祈祈猫儿з 提交于 2019-11-29 13:19:46
1 | 0 HTML介绍 1 | 1 Web服务本质 import socket sk = socket.socket() sk.bind(( " 127.0.0.1 " , 8080 )) sk.listen( 5 ) while True: conn, addr = sk.accept() data = conn.recv(8096 ) conn.send(b " HTTP/1.1 200 OK\r\n\r\n " ) conn.send(b " <h1>Hello world!</h1> " ) conn.close() 浏览器发请求 --> HTTP协议 --> 服务端接收请求 --> 服务端返回响应 --> 服务端把HTML文件内容发给浏览器 --> 浏览器渲染页面 1 | 2 HTML是什么? 超文本标记语言(Hypertext Markup Language, HTML)是一种用于创建网页的标记语言。 本质上是浏览器可识别的规则,我们按照规则写网页,浏览器根据规则渲染我们的网页。对于不同的浏览器,对同一个标签可能会有不同的解释。(兼容性问题) 网页文件的扩展名:.html或.htm 1 | 3 HTML不是什么? HTML是一种标记语言(markup language),它不是一种编程语言。 HTML使用标签来描述网页。 1 | 4 HTML文档结构

Html form 表单提交前验证

倖福魔咒の 提交于 2019-11-29 11:09:41
可以使用form表单的onsubmit方法,在提交表单之前,对表单或者网页中的数据进行检验。 onsubmit指定的方法返回true,则提交数据;返回false不提交数据。 直接看下面的代码: 1 <HTML> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 4 </head> 5 <BODY> 6 <form action="http://www.baidu.com" οnsubmit="return toVaild()"> 7 <input type="text" id="ff"> 8 <input type="submit" id="submit" value ="提交"/> 9 </form> 10 </BODY> 11 <script language="javascript"> 12 function toVaild(){ 13 var val = document.getElementById("ff").value; 14 alert(val); 15 if(val == "可以提交"){ 16 alert("校验成功,之后进行提交"); 17 return true; 18 } 19 else{ 20 alert("校验失败,不进行提交"); 21

flask 后台表单验证模块

倾然丶 夕夏残阳落幕 提交于 2019-11-29 10:42:58
我不想直接用flask的wtf模块,太大,功能太多,用不了。但后台也不能不做验证吧,我比较懒,不想一行一行写代码验证,所以就写了一个验证模块,对于小项目也够用了 # encoding=utf-8 # 这是一个简单的后台验证框架,因为前台的话要用ajax处理,那么后台就不需要复杂的表单处理了 # 基础表单类,具体验证表单继承它 from flask import session class BaseForm(object): def __init__ (self,form= None): self.form = form self.fields = [] self.errors = [] # 错误信息存放的地方 self.init() def init(self): if not self.form: return False # 给表单赋值 for field_name in dir(self): field = self. __getattribute__ (field_name) if isinstance(field,Field): if field_name in self.form: field.data = self.form[field_name] self.fields.append((field_name,field.validate)) #

表单验证

故事扮演 提交于 2019-11-29 10:03:46
<!DOCTYPE html> <html lang=" en"> <head> <meta charset=" UTF-8"> <title>表单验证 </title> <style> .item{ margin-top: 15px; } .letterSpace{ letter-spacing: 2em; } input{ width: 200px; height: 26px; transition: .5s } .err{ font-size: 12px; color: red; } .register{ border-radius: 10px; cursor: pointer; } </style> </head> <body> <h3>表单提交验证 </h3> <form action=" #" method=" post"> <div class=" item"> <span class=" letterSpace">姓 </span>名: <input type=" text" name=" userName" id=" userName"> <span class=" err"> </span> </div> <div class=" item"> <span class=" letterSpace">密 </span>码: <input type="

HTML标签

自古美人都是妖i 提交于 2019-11-29 09:30:31
HTML标签 代码实例: 1 块级标签和内敛标签 <!DOCTYPE html> <html lang="en"> <head> <!-- <meta http-equiv="refresh" content="2;URL=http://www.baidu.com" charset="UTF-8">--> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>安河桥</title> <link rel="stylesheet" href=""> <style></style> </head> <body> <span><font size="33" color="yellow" >yfjs</font></span> <div> <div><font size="20" color="red">rsx</font></div> <span><font size="30" color="orange" >大家都好</font></span> </div> <h1><font size="19" color="purple">rsx >yf <xy </font></h1> <p><font size="19" color="blue">rsx&" '</font></p> <p><font

前端HTML

僤鯓⒐⒋嵵緔 提交于 2019-11-29 08:16:20
HTML介绍 Web服务本质 import socket sk = socket.socket() sk.bind(('127.0.0.1',8080)) sk.listen(5) while 1: conn,addr = sk.accept() data = conn.recv(1024) conn.send(b"HTTP/1.1 200 OK\r\n\r\n") conn.send(b"<h1>Hello world!</h1>") conn.close() 浏览器发请求 --> HTTP协议 --> 服务端接收请求 --> 服务端返回响应 --> 服务端把HTML文件内容发给浏览器 --> 浏览器渲染页面 HTML是什么? 超文本标记语言(Hypertext Markup Language, HTML)是一种用于创建网页的标记语言。 本质上是浏览器可识别的规则,按照规则写网页,浏览器根据规则渲染网页。对于不同的浏览器,对同一个标签可能会有不同的解释。(兼容性问题) 网页文件的扩展名:.html或.htm HTML不是什么? HTML是一种标记语言(markup language),它不是一种编程语言。 HTML使用标签来描述网页。不像python编程语言一样,有逻辑什么的,这个标记语言是没有逻辑的 HTML文档结构 最基本的HTML文档: <!DOCTYPE html>

Form表单验证(基础)

旧时模样 提交于 2019-11-29 07:33:00
Form表单验证本质: 就是一个类class MyForm(forms.Form) 继承了forms.Form form组件的主要功能如下: 生成页面可用的HTML标签 对用户提交的数据进行校验 保留上次输入内容 使用form组件添加用户信息的功能 # 自定义Form类 from django import forms class UserInfoForm(Form): # 表单的字段名字最好和model的字段名字一致,方便操作 username = forms.CharField( min_length=5, max_length=32, error_messages={ 'required':'不能为空', 'min_length':'最短5个字符', 'max_length':'最长32的字符' }, label="用户名", ) pwd = forms.CharField( min_length=6, # Form表单默认生成<input type='text'/> 标签 如果要修改可以使用widgets组件 或者 填写 attr属性 # widget=widgets.PasswordInput() widget=widgets.TextInput(attrs={'type': 'password'}) ) #------ 生成select标签的两种形式 ----- #