requests請求高德地圖api


高德地圖通過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()

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM