高德地图通过GET方式发送url请求数据。url里需要包含开发者key以及一些请求的具体参数。(详情可见高德官网)高德返回的数据默认为JSON格式,方便处理。

顺带来回忆一下requests模块的一些方法。

requests发送GET请求:

基本操作:

import requests
ret = requests.get('https://github.com/timeline.json') print(ret.url) # 打印访问的url
print(ret.text) # 打印返回值 print(ret.content) #打印内容,编码格式默认为Unicode
print(ret.content.decode("utf-8")) #内容解码为utf-8

无参数get请求

有水平操作:

import requests

payload = {'key1': 'value1', 'key2': 'value2'}
ret = requests.get("http://httpbin.org/get", params=payload) print(ret.url) # 打印访问的url http://httpbin.org/get?key1=value1&key2=value2
print(ret.text) # 打印返回值
print(re.json()) #将返回的JSON数据
print(re.content) #打印二进制的数据格式,转化为str需要decode转码 import json
print(json.loads(re.text))

有参数get请求

高级操作:

import requests
ret = requests.get(
url='http://www.baidu.com',
params={'k1':123,'k2':456}, #http://www.baidu.com?k1=123&k2=456
cookies={'c1':'111','c2':'222'}, #requests会将这个cookie放到请求头中
headers={ #一般在请求头中做爬虫限制就下面三个限制
'User-Agent':'', # 伪造浏览器标记
'Referer': 'http://dig.chouti.com/',
# 有些网站在爬取时做了Referer限制,即判断上一次访问的是否是这个网站,是才让登录
'xml-httprequest':'true', #发送ajax请求可能就会有这个标记
}
)
print ret.text

带请求头的get请求

requests发送POST请求:

基本用例

import requests

payload = {'key1': 'value1', 'key2': 'value2'}
ret = requests.post("http://httpbin.org/post", data=payload) print(ret.text)

基本实例

请求头和数据实例

import requests
import json url = 'https://api.github.com/some/endpoint'
payload = {'some': 'data'}
headers = {'content-type': 'application/json'} ret = requests.post(url, data=json.dumps(payload), headers=headers) print(ret.text)
print(ret.cookies)

请求头和数据实例

requests发送post常用参数

POST请求常用参数

requests.post发送文件

import requests
requests.post(
url='xxx',
files={
'f1':open('s1.py','rb'), #这样就可以将s1.py这个文件上传到上面url中了
'f2':('ssss1.py',open('s1.py','rb')),
#指定上传文件名:第一个参数是上传到服务器端的文件名
}
)

requests.post发送文件

requests.request()发送请求:

requests.request()常用参数

requests.request(
method='POST', # 提交方式
url='http://www.oldboyedu.com', # 提交地址
params={'k1': 'v1', 'k2': 'v2'}, # 在url中传递的数据:get方式
data={'user': 'alex', 'pwd': '123'}, # 通过请求体传递数据:post方式
# json = {'user':'alex','pwd':'123',{'k1':'v1','k2':'v2'}},
# json和data都是通过post向请求体传递数据,但是json传递的数据可以在字典中嵌套字典
cookies={'cook1': 'value1'}, # 发送Cookie到服务器端
headers={
'Referer': 'http://dig.chouti.com/',
# 有些网站在爬取时做了Referer限制,即判断上一次访问的是否是这个网站,是才让登录
'User-Agent': 'Mozilla/5.0Safari/537.36', # 伪造浏览器客户端(这里是谷歌浏览器)
},
)

requests.request()常用参数

requests.Session()帮我们自动找到cookie携带信息自动登录

import requests
session = requests.Session()
### 1、首先登陆任何页面,获取cookie
i1 = session.get(url="http://dig.chouti.com/help/service")
### 2、用户登陆,携带上一次的cookie,后台对cookie中的 gpsd 进行授权
i2 = session.post(
url="http://dig.chouti.com/login",
data={
'phone': "8618538752511",
'password': "7481079xl",
'oneMonth': ""
})
### 3、这个是点赞某条新闻的url(这样就可以模仿登录点赞了)
i3 = session.post(url="http://dig.chouti.com/link/vote?linksId=15055231",)

requests.Session()

 

requests请求高德地图api的更多相关文章

  1. 高德地图api实现地址和经纬度的转换(python)

    利用高德地图web服务api实现地理/逆地址编码 api使用具体方法请查看官方文档 文档网址:http://lbs.amap.com/api/webservice/guide/api/georegeo ...

  2. 【高德地图API】汇润做爱地图技术大揭秘

    原文:[高德地图API]汇润做爱地图技术大揭秘 昨日收到了高德地图微信公众号的消息推送,说有[一大波免费情趣用品正在袭来],点进去看了一眼,说一个电商公司(估计是卖情趣用品的)用高德云图制作了一张可以 ...

  3. 【高德地图API】从零开始学高德JS API(四)搜索服务——POI搜索|自动完成|输入提示|行政区域|交叉路口|自有数据检索

    原文:[高德地图API]从零开始学高德JS API(四)搜索服务——POI搜索|自动完成|输入提示|行政区域|交叉路口|自有数据检索 摘要:地图服务,大家能想到哪些?POI搜素,输入提示,地址解析,公 ...

  4. 安卓---高德地图API应用

    说明:定位需要导入android_location 的jar包,如果没有会报错,这个官方网站好像找不到,这是我在网上找到的一个链接 http://download.csdn.net/detail/ra ...

  5. 高德地图 API 计算两个城市之间的距离

    1. 目前在项目中,遇到一个需求不会做,就是要计算两个城市之间的距离,而这两个城市的输入是可变的,如果要使用数据库来先存储两地之间的距离,调用的时候再来调用,那么存数据的时候,要哭的,因为光是省级区域 ...

  6. 高德地图API(流程法)整理分析

    [高德地图API(流程法)分析]: 前言:公司现在的网约车项目,使用的是高德地图,因为地图导航这一块的功能占比量比较大,为了方便大家对高德地图API的了解和学习使用,使用流程图把高德API分析整理了下 ...

  7. 微信小程序-基于高德地图API实现天气组件(动态效果)

    微信小程序-基于高德地图API实现天气组件(动态效果) ​ 在社区翻腾了许久,没有找到合适的天气插件.迫不得已,只好借鉴互联网上的web项目,手动迁移到小程序中使用.现在分享到互联网社区中,帮助后续有 ...

  8. 高德地图API应用

    高德地图官网:http://api.amap.com/javascript/ 输入关键字,搜索地址功能的网页: 1.引用远程Map Api(js)网址形式(注册后获取) 2.定义个<div> ...

  9. 【高德地图API】如何解决坐标转换,坐标偏移?

    http://bbs.amap.com/thread-18617-1-1.html#rd?sukey=cbbc36a2500a2e6c2b0b19115118ace519002ff3a52731f13 ...

随机推荐

  1. R语言factor类型转numeric

    R 语言中为了进行数据分析,比如回归分析,这时候对于数据表格中的factor类型的数据会带来弊端,比如对因子的每一个数据都进行一次回归,这样就显得很复杂,且违背了我们的初衷,需要把factor转换为n ...

  2. Spring Cloud 纯干货,从入门到实战

    导读 之前写过一篇SpringCloud从入门到精通的点我直达,微服务基础知识点我直达,今天我们使用Spring Cloud模拟一个电商项目.分别有以下2个服务,商品.订单.下面我们开始叭 技术栈 S ...

  3. Android Google官方文档解析之——Application Fundamentals

    Android apps are written in the java programming language.The Android SDK tools compile your code-al ...

  4. C#练习题 if

    提示用户输入用户名,然后再提示输入密码,如果用户名是"admin"并且密码是"888888",则提示正确,否则,如果用户名不是admin还提示用户用户名不存在, ...

  5. Reactor中的Thread和Scheduler

    目录 简介 Thread多线程 Schedule定时器 Schedulers工具类 publishOn 和 subscribeOn publishOn subscribeOn 简介 今天我们要介绍的是 ...

  6. ASP.NET Core 中基于工厂的中间件激活

    IMiddlewareFactory/IMiddleware 是中间件激活的扩展点. UseMiddleware 扩展方法检查中间件的已注册类型是否实现 IMiddleware. 如果是,则使用在容器 ...

  7. 内网渗透 day5-msf本地提权(windows)

    msf本地提权 目录 1. 利用uac提权 1 2. 绕过uac认证 2 3. 利用windows本地提权漏洞进行提权 4 1. 利用uac提权 前提与目标机建立会话连接 seach local/as ...

  8. 1. 线性DP 887. 鸡蛋掉落 (DP+二分)

    887. 鸡蛋掉落 (DP+二分) https://leetcode-cn.com/problems/super-egg-drop/ /*首先分析1个蛋,1个蛋的话,最坏情况需要N次,每次只能从0 1 ...

  9. UNP第13章——守护进程

    1. 守护进程的启动方法 (1)系统初始化脚本启动,在系统启动阶段,按照如/etc目录或/etc/rc开头的目录中的某些脚本启动,这些守护进程一开始就有超级用户权限.如inetd,cron,Web服务 ...

  10. inkscope完整安装配置

    准备centos7基础系统 首先安装基础系统centos7 在安装选项那里选择base web server ,选择其他的也可以,选择mini安装会缺很多常用的软件包,后续需要一个个安装比较麻烦 关闭 ...