post请求

Python——爬虫

送分小仙女□ 提交于 2020-02-01 00:14:58
参考资料 网络爬虫 (又被称为 网页蜘蛛,网络机器人 ,在FOAF社区中间,更经常的称为 网页追逐者 ),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 其实通俗的讲就是通过程序去获取web页面上自己想要的数据,也就是自动抓取数据 爬虫的本质 :模拟浏览器打开网页,获取网页中我们想要的那部分数据 浏览器打开网页的过程: 当你在浏览器中输入地址后,经过DNS服务器找到服务器主机,向服务器发送一个请求,服务器经过解析后发送给用户浏览器结果,包括html,js,css等文件内容,浏览器解析出来最后呈现给用户在浏览器上看到的结果 用户看到的浏览器的结果就是由HTML代码构成的,我们爬虫就是为了获取这些内容,通过分析和过滤html代码,从中获取我们想要资源(文本,图片,视频.....) 爬虫就是请求网站并提取数据的自动化程序。其中 请求 , 提取 , 自动化 是爬虫的关键! 爬虫的基本流程 发起请求 通过HTTP库向目标站点发起请求,也就是发送一个 Request ,请求可以包含额外的 header 等信息,等待服务器响应 Response 获取响应内容 如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能是HTML,Json字符串,二进制数据(图片或者视频)等类型

HTTP中的常用方法

 ̄綄美尐妖づ 提交于 2020-01-31 19:24:25
HTTP中的GET和POST方法 HTTP 的请求中的Method有很多种,如 GET、POST、HEAD、TRACE、OPTIONS 等方法。在这些方法中get()和post()方法的使用率是最高的,也是最常用的。 HTTP 常用方法: GET: 用于请求访问已经被URI识别的资源,可以通过URL传参给服务器;简单来说就是将服务端获取的用户所需的资源,作为响应信息返回给客户端(不会影响资源信息的状态,如:增删改查等操作)。 POST:用于传输数据给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。请求服务器接受所指定的文档作为对所表示的URL的新的从属实体。 PUT: 传输数据,报文主体中包含文件内容,保存到对应URI位置。从客户端向服务器所传送的数据取代指定的文档信息。 HEAD: 获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效。只请求页面的头部信息。 DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件。请求服务器删除指定的页面信息。 OPTIONS:查询相应URI支持的HTTP方法。允许客户端查看服务器性能。 下面主要介绍 HTTP 中的两种常用方法: GET、POST GET: GET是最简单的一种请求方法,主要的功能是客户端通过服务端获取用户所需要的资源,然后服务端作出应答,并将应答的资源信息返回给客户端

【EF】Entity Framework Core 软删除与查询过滤器

元气小坏坏 提交于 2020-01-31 06:08:13
本文翻译自 《Entity Framework Core: Soft Delete using Query Filters》 ,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 注意:我使用的是 Entity Framework Core 2.0 (2.0.0-preview2-final)。正式版发布后,功能可能存在变动。 继续探索Entity Framework Core 2.0,今天我将探讨如何轻松使用软删除(或逻辑删除)。我的意思是以透明的方式实现软删除,例如,您是物理上的删除行。 要实现软删除,您需要添加一列以指示该行数据是否被逻辑删除。如果您想知道该行被删除,可以使用布尔列,如果您想知道删除的时间,可以使用日期列。其次是更改所有查询,使用此列过滤结果集;您还需要将删除语句替换成为更新语句。 现在我们来看看如何用 Entity Framework Core 来实现这两件事! 添加IsDeleted列 实体框架核心提供了非常灵活的映射。在上一篇关于 跟踪列 ( 英文原文 )的博客中,您将找到映射列的3种方法。在介绍中,我已经说过软删除应该是透明的,所以我决定在类型中不暴露 IsDeleted 属性。类型定义如下: public class Blog { public int BlogId { get; set; } public string Url { get;

Java_得到GET和POST请求URL和参数列表

允我心安 提交于 2020-01-31 04:21:42
一、获取URL getRequestURL() 二 、获取参数列表: 1.getQueryString() 只适用于GET, 比如客户端发送http://localhost/testServlet?a=b&c=d&e=f, 通过request.getQueryString()得到的是a=b&c=d&e=f. 2.getParameter() GET和POST都可以使用 但如果是POST请求要根据<form>表单提交数据的编码方式来确定能否使用. 当编码方式是(application/x- www-form-urlencoded)时才能使用. 这种编码方式(application/x-www-form-urlencoded)虽然简单,但对于传输大块的二进制数据显得力不从心. 对于传输大块的二进制数这类数据,浏览器采用了另一种编码方式("multipart/form-data"),这时就需要使用下面的两种方法. 3.getInputStream() 4.getReader() 上面两种方法获取的是Http请求包的包体,因为GET方式请求一般不包含包体.所以上面两种方法一般用于POST请求获取参数. 需要注意的是: request.getParameter()、 request.getInputStream()、request.getReader()这三种方法是有冲突的

HTTP和GET/POST请求(NSURLConnection)

耗尽温柔 提交于 2020-01-30 19:19:20
网络编程 网络编程是一种实时更新应用数据的常用手段 网络编程是开发优秀网络应用的前提和基础 网络基本概念 客户端(就是手机或者ipad等手持设备上面的APP) 服务器(远程服务器-本地服务器) 请求(客户端索要数据的方式) 响应(需要客户端解析数据) 数据库(服务器的数据从哪里来) HTTP URL 如何找到服务器(通过一个唯一的URL) URL介绍 统一资源定位符 url格式(协议\主机地址\路径) 协议:不同的协议,代表着不同的资源查找方式、资源传输方式 主机地址:存放资源的主机(服务器)的IP地址(域名) 路径:资源在主机(服务器)中的具体位置 请求协议 【file】访问的是本地计算机上的资源,格式是file://(不用加主机地址) 【ftp】访问的是共享主机的文件资源,格式是ftp:// 【mailto】访问的是电子邮件地址,格式是mailto: 【http】超文本传输协议,访问的是远程的网络资源,格式是http://(网络请求中最常用的协议) HTTP协议 简介 a.超文本传输协议 b.规定客户端和服务器之间的数据传输格式 c.让客户端和服务器能有效地进行数据沟通 优缺点 a.简单快速(协议简单,服务器端程序规模小,通信速度快) b.灵活(允许传输各种数据) c.非持续性连接(1.1之前版本是非持续的,即限制每次连接只处理一个请求,服务器对客户端的请求做出响应后

Django学习记录5——Views的简述与操作

ⅰ亾dé卋堺 提交于 2020-01-30 07:57:41
目录 零之前言 一.返回一段文字 二.返回一个没有传入参数的网页 三.返回一个带有传入参数的网页 四.返回一个带有Python命令的网页 五.提交/接收一个get/post表单 六.提交/获取Cookies 1.常规cookie 2.加盐(加密)cookies 七.提交Session 八.小结 零之前言 这一节里,内容较多,可能涉及了我还没有说过的内容,Model模型和templates模板,但是我会尽可能的少使用和阐述清楚。 这一节的内容对应千峰教育视频的P33~P39,视频会有更详细的表述: https://www.bilibili.com/video/av57516522?p=33 Views是我们需要操作的核心,绝大部分操作的代码都写在views里。views可以帮我们处理我们获得的请求,并对这个请求作出反应。 一.返回一段文字 假设我们不使用网页,而只返回一段小段文字的话,我们可以直接使用,当然这段文字可以带H5标识的文字: 例如: def hello(request): return HttpResponse('Hello') def bey(request): return HttpResponse("<a href=""www.baidu.com"">我去百度</a>") 二.返回一个没有传入参数的网页 网页,就是我们的Templates。我们将我们的"伪代码网页

django高级之爬虫基础

会有一股神秘感。 提交于 2020-01-30 06:23:51
目录: 爬虫原理 requests模块 beautifulsoup模块 爬虫自动登陆示例 一、爬虫原理 Python非常适合用来开发网页爬虫,理由如下: 1、抓取网页本身的接口 相比与其他静态编程语言,如java,c#,c++,python抓取网页文档的接口更简洁;相比其他动态脚本语言,如perl,shell,python的urllib包提供了较为完整的访问网页文档的API。(当然ruby也是很好的选择) 此外,抓取网页有时候需要模拟浏览器的行为,很多网站对于生硬的爬虫抓取都是封杀的。这是我们需要模拟user agent的行为构造合适的请求,譬如模拟用户登陆、模拟session/cookie的存储和设置。在python里都有非常优秀的第三方包帮你搞定,如Requests,mechanize 2、网页抓取后的处理 抓取的网页通常需要处理,比如过滤html标签,提取文本等。python的beautifulsoap提供了简洁的文档处理功能,能用极短的代码完成大部分文档的处理。 其实以上功能很多语言和工具都能做,但是用python能够干得最快,最干净。 3、爬虫架构 URL管理器:管理待爬取的url集合和已爬取的url集合,传送待爬取的url给网页下载器。 网页下载器(urllib、requests):爬取url对应的网页,存储成字符串或文件,传送给网页解析器。 网页解析器

详解Http协议

蹲街弑〆低调 提交于 2020-01-30 00:46:07
一 什么是HTTP协议 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议。HTTP 是基于 TCP/IP 协议通信协议来传递数据(HTML 文件、图片文件、查询结果等)。它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。 二 Http的特点 1、 简单快速 客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、PUT、DELETE、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 2、 灵活 HTTP允许传输任意类型的数据对象。 3、 无连接 无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 4、 无状态 HTTP协议是无状态的,HTTP 协议自身不对请求和响应之间的通信状态进行保存。任何两次请求之间都没有依赖关系。直观地说,就是每个请求都是独立的,与前面的请求和后面的请求都是没有直接联系的。协议本身并不保留之前一切的请求或 响应报文的信息。这是为了更快地处理大量事务,确保协议的可伸缩性,而特意把 HTTP 协议设计成如此简单的。 三 Http报文

RestTemplate post请求使用map传参 Controller 接收不到值的解决方案 postForObject方法源码解析.md

怎甘沉沦 提交于 2020-01-29 22:34:09
结论 post方法中如果使用map传参,需要使用MultiValueMap来传递 RestTemplate 的 postForObject 方法有四个参数 String url => 顾名思义 这个参数是请求的url路径 Object request => 请求的body 这个参数需要再controller类用 @RequestBody 注解接收 Class responseType => 接收响应体的类型 第四个参数 postForObject 方法多种重构 Map<String,?> uriVariables => uri 变量 顾名思义 这是放置变量的地方 Object... uriVariables => 可变长 Object 类型 参数 @Nullable public <T> T postForObject(String url, @Nullable Object request, Class<T> responseType, Object... uriVariables) throws RestClientException { RequestCallback requestCallback = this.httpEntityCallback(request, responseType); HttpMessageConverterExtractor<T>

axios 发 post 请求,后端接收不到参数的解决方案

天大地大妈咪最大 提交于 2020-01-29 22:21:45
问题场景 场景很简单,就是一个正常 axios post 请求: axios({ headers: { 'deviceCode': 'A95ZEF1-47B5-AC90BF3' }, method: 'post', url: '/api/lockServer/search', data: { username, pwd } }) 后台说没有接收到你的传参。 这就有点奇怪了,我看了一下浏览器的请求信息是 OK 的,参数都是有的,而且之前这样用 axios 也没有这个问题。 但是这个接口是通用的,别人都用了,是 OK 的,接口没问题。 问题原因 要点1 原因就是这次的接口使用 java spring mvc 并且在这个方法上使用了注解 @RequestParam 那么这个是什么意思呢,这个是只能从请求的地址中取出参数,也就是只能从 username=admin&password=admin这种字符串中解析出参数。 要点2 我们还可以看到我们这次请求的 Content-Type: application/json;charset=UTF-8 关于这一点需要说明的是: 1、axios会帮我们 转换请求数据和响应数据 以及 自动转换 JSON 数据 2、在 axios 源码中发现下面这段内容:(很关键) ==我们知道在做 post 请求的时候,我们的传参是 data: {...} 或者直接