今日内容概要

  • 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. python15day

    昨日回顾 装饰器:完美的呈现了开放封闭原则.本质:闭包. def wrapper(f): def inner(*args,**kwargs): '''在执行被装饰函数之前,想写什么代码写什么代码''' ...

  2. Ubuntu 配置数据库开发环境(mysql oracle mssqlserver sybase)

    1.mysql sudo apt-get install libmysql++-dev //mysql连接库 2.ms sql server/sybase ./configure --prefix=/ ...

  3. PyTorch 介绍 | AUTOMATIC DIFFERENTIATION WITH TORCH.AUTOGRAD

    训练神经网络时,最常用的算法就是反向传播.在该算法中,参数(模型权重)会根据损失函数关于对应参数的梯度进行调整. 为了计算这些梯度,PyTorch内置了名为 torch.autograd 的微分引擎. ...

  4. elasticsearch查询之大数据集分页性能测试

    一.测试环境 python 3.7 elasticsearch 6.8 elasticsearch-dsl 7 安装elasticsearch-dsl pip install elasticsearc ...

  5. Android返回键

    感谢大佬:https://www.cnblogs.com/qiluboy/p/5308310.html Android中back键和home键的区别: back键 Android的程序无需刻意的去退出 ...

  6. JS创建快捷方式

    转载请注明来源:https://www.cnblogs.com/hookjc/ <script type="text/javascript" language="j ...

  7. Java开发调试技巧及Eclipse快捷键使用方法

    1. 快捷键 syso 通过打印输出来调试,println可接受object型的参数,能输出任何类型 Syso输出的是黑色字体,代表的是Debug的信息 Syse,输出的是红色字体,代表错误的输出信息 ...

  8. idea导入mavenJar、mavenWeb项目

    两种项目都是一样的,都是maven项目,所以主要是找到pom.xml,项目最好先放在idea的工作目录下,且工作目录最好为英文 1.打开idea,选择import project 2.把项目放到ide ...

  9. python基础语法_3面向对象

    http://www.runoob.com/python3/python3-class.html https://www.imooc.com/learn/317 慕课网:987809563@qq.co ...

  10. 3.k8s核心概念

    k8s的核心概念 一. Pod pod,中文翻译过来叫豆荚,如下图.我们都知道豆荚,一个豆荚里面有很多豆子.豆荚就可以理解为pod,一个个的豆子就可以理解为容器.pod和容器的关系是一个pod里面可以 ...