url

HTTP请求-基础

巧了我就是萌 提交于 2020-02-02 01:30:54
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,和 TCP/IP 协议族内的其他众多的协议相同, 用于客户端和服务器之间的通信,请求访问文本或图像等资源的一端称为客户端, 而提供资源响应的一端称为服务器端。 HTTP协议交互的典型描述 为什么要“三次握手” 客户端和服务端通信前要进行连接,“三次握手”的作用就是双方都能明确自己和对方的收、发能力是正常的。 第一次握手:客户端发送网络包,服务端收到。也即客户端的发送能力、服务端的接收能力正常。 第二次握手:服务端发包,客户端收到。说明服务端的接收、发送能力,客户端的接收、发送能力是正常的。 从客户端的视角来看,我接到了服务端发送过来的响应数据包,说明服务端接收到了我在第一次握手时发送的网络包,并且成功发送了响应数据包,这就说明,服务端的接收、发送能力正常。而另一方面,我收到了服务端的响应数据包,说明我第一次发送的网络包成功到达服务端,这样,我自己的发送和接收能力也是正常的。 第三次握手:客户端发包,服务端收到了。这样服务端就能得出结论:客户端的接收、发送能力,服务端的发送、接收能力是正常的。 第一、二次握手后,服务端并不知道客户端的接收能力以及自己的发送能力是否正常。而在第三次握手时,服务端收到了客户端对第二次握手作的回应。从服务端的角度,我在第二次握手时的响应数据发送出去了

urllib的使用和进阶

ぐ巨炮叔叔 提交于 2020-02-01 20:56:22
  urllib是python中常用的一个基本库,以后的许多库包括一些框架如Scrapy都是建立在这个库的基础上的。在urllib中,为用户提供了一系列用于操作URL的功能,其提供的功能主要就是利用程序去执行各种HTTP请求。这当中,最常使用的就是urllib.request模块中的urlopen。   如果要模拟浏览器完成特定功能,需要把请求伪装成浏览器。伪装的方法是先监控浏览器发出的请求,再根据浏览器的请求头来伪装, User-Agent 头就是用来标识浏览器的。   官方给出的方法原型是这样的: def urlopen(url, data=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT, *, cafile=None, capath=None, cadefault=False, context=None):   一般常用的为以下三个部分:   url: 需要打开的网址   data:Post提交的数据   timeout:设置网站的访问超时时间   但是urlopen也有很大的缺陷,就是他没有办法进行对爬虫进行伪装,也就是无法设置请求头,这就需要urllib中的另外一个库——request,request库提供了对于请求头的使用,用来进行对爬虫的伪装,一般来说,我们会设置几个不同的Headers来进行伪装,用来改变为不同的用户

GET和POST的区别

偶尔善良 提交于 2020-02-01 19:08:57
get和post的区别 HTTP的请求方法有: get和post都是HTTP常用的请求方法。 区别: 1、get通过URL地址栏传输,post通过报文传输。 2、get参数有长度限制,post无限制。 3、get产生一个数据包,post产生2个数据包。 4、URL是可见的,post将字段与对应值封存在请求实体中,post比get安全。 注意:1、get提交的数据最大是2k(原则上url长度无限制,但是限制实际上取决于浏览器,(大多数)浏览器通常都会限制url长度在2K个字节,即使(大多数)服务器最多处理64K大小的url。也没有用。)。post理论上没有限制。实际上IIS4(IIS4/5是web服务器程序)中最大量为80KB,IIS5中为100KB。 2、get方法将http header和data一并发送出去,服务器响应200,只需要发送一次。而post方法先发送http header,等服务器响应100,再发送data,服务器响会应200,需要发送两次。简单来说get发送请求时直接把数据向服务器发送过去,而post会先打声招呼,得到服务器答应后在发送请求数据。 3、get传输数据是通过URL请求,以field(字段)= value的形式,置于URL后,并用"?“连接,多个请求数据间用”&"连接,http://127.0.0.1/Test/login.action?name

urllib的使用

霸气de小男生 提交于 2020-02-01 18:12:13
urllib的使用 1. response = urllib.request.urlopen(url, [data=None, timeout=...]) url: 请求的url data: 请求的data, 如果设置了这个值,那么将变成post请求 response返回值:返回值是一个 http.client.HTTPResponse 对象,这个对象是一个类文件句柄对象, 有如下方法: read([size]): 读取指定字节大小的数据,默认为读取全部内容 readline(): 读取一行 readlines(): 一交读取一行,直到读取完所有数据,返回一个列表 getcode(): 响应状态码 from urllib import request response = request.urlopen('http://httpbin.org/get') # response.read(1024) # 读取全部 # response.readline() # 读取一行 # print(type(response)) print(response.readlines()) # 读取多行 print(response.getcode()) [b'{\n', b' "args": {}, \n', b' "headers": {\n', b' "Accept-Encoding":

HTTP:Java实现HTTP请求的三种方式

你离开我真会死。 提交于 2020-02-01 17:02:36
目前JAVA实现HTTP请求的方法用的最多的有两种: 一种是通过HTTPClient这种第三方的开源框架去实现。HTTPClient对HTTP的封装性比较不错,通过它基本上能够满足我们大部分的需求, HttpClient3.1 是 org.apache.commons.httpclient下操作远程 url的工具包,虽然已不再更新,但实现工作中使用httpClient3.1的代码还是很多 ,HttpClient4.5是org.apache.http.client下操作远程 url的工具包,最新的; 另一种则是通过HttpURLConnection去实现,HttpURLConnection是JAVA的标准类,是JAVA比较原生的一种实现方式。 第一种方式:java原生HttpURLConnection package com.powerX.httpClient; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net

python学习笔记 带参请求数据

百般思念 提交于 2020-02-01 14:25:40
一.带参请求数据 (接上篇)我们准备爬取QQ音乐中周杰伦的歌曲的评论。 我们可以看到Request URL是很长的一段,那么它的涵义是什么呢? 在Headers的Query String Parameters中我们可以看到,它所有的参数都写在了Request URL:https://c.y.qq.com/base/fcgi-bin/fcg_global_comment_h5.fcg?之后 再看pagenum参数,第一次点击加载更多的值为1,第二第三次点击它的值就变成了2和3。 当然,pagenum这个复合英文本身也说明了问题,指的就是页码!也就是说,pagenum=1等于告诉服务器:我要歌曲信息列表第一页的数据,pagenum=2:我要歌曲信息列表第二页的数据。 这样一来,按照之前学的知识,我们写一个循环,每次循环都去更改pagenum的值,这样不就能实现爬取好多好多精彩评论了吗? import requests res_comments = requests . get ( 'https://c.y.qq.com/base/fcgi-bin/fcg_global_comment_h5.fcg?g_tk=5381&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=GB2312&notice=0&platform

Spring Boot整合swagger(使用swagger-spring-boot-starter)

青春壹個敷衍的年華 提交于 2020-02-01 09:00:31
在pom.xml中引入swagger依赖包 在application.properties中添加配置 配置内容参考如下: # swagger配置 swagger . title = 对外开放接口API文档 swagger . description = HTTP对外开放接口 swagger . version = 1.0 .0 swagger . license = Apache License , Version 2.0 swagger . licenseUrl = https : / / www . apache . org / licenses / LICENSE - 2.0 . html swagger . termsOfServiceUrl = https : / / github . com / dyc87112 / spring - boot - starter - swagger 配置内容说明如下: swagger.enabled=是否启用swagger,默认:true swagger.title=标题 swagger.description=描述 swagger.version=版本 swagger.license=许可证 swagger.licenseUrl=许可证URL swagger.termsOfServiceUrl=服务条款URL swagger

http请求方法,get 对比 post

瘦欲@ 提交于 2020-02-01 07:49:17
本文转自:http://www.w3school.com.cn/tags/html_ref_httpmethods.asp 两种最常用的 HTTP 方法是:GET 和 POST。 什么是 HTTP? 超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信。 HTTP 的工作方式是客户机与服务器之间的请求-应答协议。 web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。 举例:客户端(浏览器)向服务器提交 HTTP 请求;服务器向客户端返回响应。响应包含关于请求的状态信息以及可能被请求的内容。 两种 HTTP 请求方法:GET 和 POST 在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。 GET - 从指定的资源请求数据。 POST - 向指定的资源提交要被处理的数据 GET 方法 请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的: /test/demo_form.asp?name1=value1&name2=value2 有关 GET 请求的其他一些注释: GET 请求可被缓存 GET 请求保留在浏览器历史记录中 GET 请求可被收藏为书签 GET 请求不应在处理敏感数据时使用 GET 请求有长度限制 GET 请求只应当用于取回数据 POST 方法 请注意,查询字符串(名称/值对)是在

python爬虫---requests库的用法

那年仲夏 提交于 2020-02-01 07:20:19
本文转载自: https://www.cnblogs.com/mzc1997/p/7813801.html 作者:mzc1997 转载请注明该声明。 requests是 python 实现的简单易用的HTTP库,使用起来比urllib简洁很多 因为是第三方库,所以使用前需要cmd安装 pip install requests 安装完成后import一下,正常则说明可以开始使用了。 基本用法: requests.get()用于请求目标网站,类型是一个HTTPresponse类型 import requests response = requests.get( ' http://www.baidu.com ' ) print(response.status_code) # 打印状态码 print(response.url) # 打印请求url print(response.headers) # 打印头信息 print(response.cookies) # 打印cookie信息 print (response.text) #以文本形式打印网页源码 print(response.content) #以字节流形式打印 运行结果: 状态码:200 url:www.baidu.com headers信息 各种请求方式: import requests requests.get( ' http:

Hosting an .apk file on over own site

北城以北 提交于 2020-02-01 05:53:08
问题 I got requirement to host my .apk file on one public site other than android market or any other app stores. In android market, after registred in to the market the downloded .apk will automatically installed on mobile without any manual action. So I am willing to create one URL and host my .apk file in to that and want to download that .apk in to the android mobile and it has to install automatically. How can I do that....plz share if any code or links are there regrading this. 回答1: If