url

drf框架-http方法与url构建

萝らか妹 提交于 2020-04-04 09:34:38
一 基本http方法 一 查询 http方法:get 2 查询需求 1 全部查询 url连接: /query/ 路由连接: query/ 2 单条查询 url连接: /query/+id+'/' 路由连接: query/(?P<pk>\d+)/$ 只能通过主键构建单条查询 二 删除 1 单条删除 url连接: /delete/+id+'/' 对应http方法:delete 路由连接: query/(?P<pk>\d+)/$ 2 批量删除 http方法:post url连接 和 路由链接皆为/query/ 只能通过主键构建单条删除 对于批量删除,构建post方法,然后后端通过orm操作进行批量删除或者自定义 三 插入 http方法:post url连接: /insert/ 四 更新 1 全部更新 url连接: /update/+id+'/' 对应http方法:update 路由连接 update/(?P<pk>\d+)/$ 2 部分更新 对应http方法:patch drf的update方法只能针对单条数据,对于批量的更新需要用户自定义或者采用post方法 五 总结 1 根据单条语句的查询 更新和删除操作都依赖于主键ID 2 对于批量的删除更新暂时只能通过post请求然后实现自定义处理,或者你自己定义delete和update类 3 对于表单数据的传递前端vue需要构建表单数据,切记

URL,URLConnection,HttPURLConnection的使用

穿精又带淫゛_ 提交于 2020-04-04 06:54:00
URLConnection与HttPURLConnection都是抽象类,无法直接实例化对象。其对象主要通过URL的openconnection方法获得。 值得注意的是: 1.openConnection方法只创建URLConnection或者HttPURLConnection实例,但是并不进行真正的连接操作。并且,每次openConnection都将创建一个新的实例。 2.openConnection不进行的连接操作的原因在于,可以在连接操作进行之前,对URLConnection或者HttPURLConnection实例的某些属性进行设置,如设置超时值等。 3.无论URLConnection或者HttPURLConnection实例,其getInputStream之类属于应用层的操作,都会调用connect操作。但是,connectTimeout与ReaderTimeout并不相同。有可能在已连接的情况下, 仍然Reader超时 //////////////////////////////// 利用HttpURLConnection对象和Internet交互 1.从Internet获取网页 发送请求,将网页以流的形式读回来. 1)创建一个URL对象:URL url = new URL("http://www.sohu.com"); 2

python3爬虫.2.伪装浏览器

若如初见. 提交于 2020-04-03 17:52:41
有的网页在爬取时候会报错返回 urllib.error.HTTPError: HTTP Error 403: Forbidden 这是网址在检测连接对象,所以需要伪装浏览器,设置User Agent 在浏览器打开网页 ---> F12 ---> Network ---> 刷新 然后选择一项 就是在 header 看到 User-Agent User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36 import urllib.request #url包 def openUrl(url): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36', 'Host': 'jandan.net' } req = urllib.request.Request(url, headers=headers) response = urllib.request.urlopen(req) #请求

python中模拟浏览器抓取网页(-)

瘦欲@ 提交于 2020-04-03 17:52:25
对于平时我们抓取网页的内容时,比较倾向于直接利用urllib进行抓取(这里我就基于python的2.7版本进行解说,对于python3之后的版本,是将python中的urllib和urllib2和并成了urllib),但有些网站设置了防采集的功能,会拒绝爬虫进行数据的采集,这时候便可以模拟浏览器进行网页访问,然后抓取需要的数据。 下面是一个简单的访问: import urllib url="http://www.csdn.net/" html=urllib.urlopen(url) print html.read() 使用上面的程序,将会访问到csdn网站的首页并将显示此网页的源码。 我们再来看下面的例子: import urllib url="http://blog.csdn.net/beliefer/article/details/51251757" html=urllib.urlopen(url) print html.read() 在此例子中,我将网址改变了,改成访问csdn中的博客,此时便出现了下面的结果: <html> <head><title>403 Forbidden</title></head> <body bgcolor="white"> <center><h1>403 Forbidden</h1></center> <hr><center>nginx<

python 分别用python2和python3伪装浏览器爬取网页内容

纵然是瞬间 提交于 2020-04-03 17:52:06
python网页抓取功能非常强大,使用urllib或者urllib2可以很轻松的抓取网页内容。但是很多时候我们要注意,可能很多网站都设置了防采集功能,不是那么轻松就能抓取到想要的内容。 今天我来分享下载python2和python3中都是如何来模拟浏览器来跳过屏蔽进行抓取的。 最基础的抓取 #! /usr/bin/env python # -*- coding=utf-8 -*- # @Author python import urllib.request url = "http://www.baidu.com" html = urllib.request.urlopen(url).read() print(html) 但是...有些网站不能抓取,进行了防采集设置,所以我们要变换一下方法 python2中(最新稳定版本python2.7) #! /usr/bin/env python # -*- coding=utf-8 -*- # @Author python import urllib2 url="http://www.baidu.com" req_header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64

简单爬虫

大兔子大兔子 提交于 2020-04-03 10:28:34
该随笔主要记录包括urllib、Requests、Selenium、Lxml、Beautifulsoup、pyquery这几个基于爬虫的常用包,主要用于自己的查看和理解,每个包通过2个例子实现对新浪网的新闻和淘宝的图片爬取到本地的测试。 1.urllib(这是python的内置库,是最基础的爬虫实现包) --爬取新浪网: 在新浪网页上打开审查元素,在Network中查看源码,ctrl+f查找一条新闻链接,寻找新闻链接的共性,从而构造正则表达式: 可以看到新闻的前缀是一样的,只有后面不同,因此基于此我们构造如下pat,代码如下: 1 import urllib.request 2 import re 3 data=urllib.request.urlopen("http://news.sina.com.cn/").read().decode("utf8") 4 pat='href="(http://news.sina.com.cn/.*?)"' 5 allurl=re.compile(pat).findall(data) 6 m=0 7 for i in range(0,len(allurl)): 8 thisurl=allurl[i] 9 file="sinanews/"+str(i)+".html" 10 print('***** ' + str(m) + '.html ****

HTTP中Get与Post的区别

跟風遠走 提交于 2020-04-03 10:25:01
转载于:http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html  Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。    1 .根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。   (1).所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET 请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。   * 注意:这里安全的含义仅仅是指是非修改信息。   (2).幂等的意味着对同一URL的多个请求应该返回同样的结果。这里我再解释一下 幂等 这个概念:    幂等 (idempotent、idempotence)是一个数学或计算机学概念,常见于抽象代数中。   幂等有一下几种定义:   对于单目运算,如果一个运算对于在范围内的所有的一个数多次进行该运算所得的结果和进行一次该运算所得的结果是一样的

HTTP协议

橙三吉。 提交于 2020-04-03 08:20:57
目录 HTTP协议 回到顶部 HTTP协议简介 超文本传输协议(英文:Hyper Text Transfer Protocol,HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。HTTP有很多应用,但最著名的是用于web浏览器和web服务器之间的双工通信。 HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)进行协调,最终发布了一系列的RFC,其中最著名的是1999年6月公布的 RFC 2616,定义了HTTP协议中现今广泛使用的一个版本——HTTP 1.1。 2014年12月,互联网工程任务组(IETF)的Hypertext Transfer Protocol Bis(httpbis)工作小组将HTTP/2标准提议递交至IESG进行讨论,于2015年2月17日被批准。 HTTP/2标准于2015年5月以RFC 7540正式发表,取代HTTP 1.1成为HTTP的实现标准。 推荐书籍: HTTP权威指南 回到顶部 HTTP协议概述 HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)

java操作数据库

烈酒焚心 提交于 2020-04-03 04:19:26
1 、 jdbc-odbc /** * 演示使用 jdbc-odbc 桥连方式操作数据库 *1 、配置数据源 ( 数据源:服务器 S ( . 或 local, 点小三角会死机) ) *2 、在程序中去连接数据源 * */ import java.sql.*; public class Demo { public static void main(String args[]) { Connection=null; Statement=null; try{ //1 、加载驱动 ( 作用是把需要的驱动程序加入内存 ) Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");// 该 jdbc 是 sun 公司开发的 //2 、得到连接 ( 指定连接到哪个数据源,用户名和密码 ) // 如果你配置数据源的时候,选择是 windows nt 验证,则不需要 "sa","shunping" // 即 Connection ct=DriverManager.getConnection("jdbc:odbc:mytext") Connection ct=DriverManager.getConnection("jdbc:odbc:mytext","sa","123456"); //3 、创建 Statement 或者 PreparedStatement[ 区别

Requests请求方式:Get与Post

允我心安 提交于 2020-04-03 04:15:09
为什么要学习requests,而不是urllib? 1.requests的底层实现就是urllib。 2.requests在python2和python3中通用,方法完全一样。 3.requests简单易用。 4.requests能够自动帮我们解压(gzip压缩等)网页内容。 在写爬虫的过程中,一定要养成一个好习惯,学会模拟浏览器的User-Agent。 如果不去模拟的话,以Python作为User-Agent去访问,会受到条件的限制。 import requests #为什么请求访问要带上headers,目的是模拟欺骗浏览器,获取完整的内容 headers={ "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.6814.400 QQBrowser/10.3.3005.400" } response=requests.get("http://www.baidu.com",headers=headers) #status_code,获取响应码的值 a=response.status_code #获取响应报头 b=response.headers #显示出访问的url c