使用接口爬取數據用!
參數介紹
url: 必填,請求的網址
data: 選填,字典,元組列表,字節或者要發送到URL的文件對象。
json: 可選,發送到指定URL的JSON對象。
files: 可選,要發送到URL的文件字典
allow_redirects:可選。用於啟用/禁用重定向的布爾值。
默認True(允許重定向)
auth: 可選。用於啟用某種HTTP身份驗證的元組。
默認None
cert:可選。指定證書文件或密鑰的字符串或元組。
默認None
cookies: 可選。要發送到指定網址的Cookie字典。
默認None
headers:可選。要發送到指定網址的HTTP標頭字典。
默認None
proxies: 可選。URL代理協議字典。
默認None
stream: 可選。如果響應應立即下載(False)或流式傳輸(True)的布爾指示。
默認False
timeout: 可選。一個數字或一個元組,指示等待客戶端建立連接和/或發送響應的秒數。
默認值None表示請求將繼續,直到連接關閉。
verify: 可選。用於驗證服務器TLS證書的布爾值或字符串指示。默認True
import requests
import configparser
import pprint
import json
url = '這裡寫具體的url'
json = {
'這裡寫具體要獲取的資源,字典格式'
}
headers = {
"User-Agent": '這裡寫用戶代理的一些信息,打開網站,點檢查,點網絡,點擊下邊的第一個元素,在請求標頭下找到User-Agent貼過來',
"cookie": '和找到User-Agent方法一樣,在下邊找到cookie'}
session = requests.session()
# 傳入相關參數,開始請求
response = session.post(url=url, json=json , headers=headers)
pprint.pprint(json.loads(response.text))
return response
# JSON格式是網站和API使用的通用標准格式,它是一種數據結構,將對象用文本形式表示出來。
# JSON格式字符串示例:
# JSON數據看起來像是一個Python字典,以鍵值對的形式傳遞數據。然而,JSON數據也可以是字符串、數字、布爾值或者是列表。
{
"name": "United States",
"population": 331002651,
"capital": "Washington D.C.",
"languages": [
"English",
"Spanish"
]
}
# 在JSON流行之前,XML是更常見的選擇,但是看起來相對比較復雜
# XML相同信息示例:
<?xml version="1.0" encoding="UTF-8"?>
<country>
<name>United States</name>
<population>331002651</population>
<capital>Washington D.C.</capital>
<languages>
<language>English</language>
<language>Spanish</language>
</languages>
</country>
# Python原生支持JSON數據,Python Json模塊是標准庫的一部分。
# 這個JSON模塊可以將JSON數據從JSON格式轉換為等效的Python對象,例如字典和列表,還可以反向轉換。
# 將JSON字符串解析為Python字典(解析為什麼格式的數據主要看輸入的數據是什麼)
# eg:
import json
country = '{
"name": "United States", "population": 331002651}'
# loads: 代表的是字符串,loads方法用於讀取JSON字符串。
country_dict = json.loads(country)
# country_dict 此時已經是Python字典
# 除了loads()方法,還有load()方法,load()用於讀取文件中的JSON數據。load()方法接收一個文件對象並返回解析為Python對象的JSON數據。
# 將Python對象轉換為JSON對象也稱為序列化或JSON編碼。可以使用函數dumps()來實現。
import json
languages = ["English","French"]
country = {
"name": "Canada",
"population": 37742154,
"languages": languages,
"president": None,
}
country_string = json.dumps(country)
print(country_string)
結果:
{
"name": "Canada", "population": 37742154, "languages": ["English", "French"],
"president": null}
import requests
response = requests.post(url=url)
import requests
session = requests.session()
response = session.post(url=url)
# 獲取到cookies
cookie = session.cookies
requests.post:在調用完成後就關閉了連接,所以cookies就隨著connect的消亡而消亡。
session.post:高級用法,未關閉上下文連接,會話一直保持在連接池內,即cookies是一直有效的。
總結:
1、request占用資源較少,安全性比較高,但是無法獲取到特別多的信息。
2、session相對來說消耗資源較多,安全性相對較低,但是可以獲取到更多的信息,例如cookies。
3、request相當於某一次訪問的局域變量,session相當於客戶端的全局變量。
參考文章:
Python Requests post() 方法.
request和session的區別.
使用Python讀取和解析JSON數據教程.
python調用request.post請求與Postman方法.
愛情只會影響我敲代碼的速度!
According to the longitude and latitude coordinates, the name of the administrative division city of the province, city and county is obtained, and the self built database Java Python PHP C # Net
Catalog Step one 、 Download p