requests模块的post实战

1、post json数据:添加header、cookie
必须在headers中添加 {‘Content-Type’: ‘application/json’}

url = 'https://xxxx/xxxxx/Auto' 
header={'Content-Type': 'application/json'} 
response = requests.post(url, data=json_str, headers=header)
json = response.json() #返回类型是dict,内容同text
text = response.text
print(response)  #成功,返回<Response [200]>
print(text)  #成功,返回http接口定义的正确返回形式,如:{"Content":{"PkgName":"XMRD0000001"},"Message":"","Success":true,"Total":0}

header中添加http接口需要的额外验证消息:

header={'Content-Type': 'application/json','appid':'rrrd_zs','userId':'8tt8-hujijhu-xxxx-aaad-hj90h2joi'} 

post时添加cookie:

url = 'https://xxxx/xxxxx/Auto' 
header={'Content-Type': 'application/json'}  
jar = requests.cookies.RequestsCookieJar()
jar.set('LLL',cookie_LLL_value)  # jar.set(cookie_name,cookie_value)
response = requests.post(url, data=json_str, headers=header, cookies=jar)
json = response.json()
text = response.text
print(response)
print(text)

【附注】账号登录,爬虫cookie:

def get_cookie(url='https://xx.xxx.xxx/search'):
    driver=webdriver.Chrome()
    driver.get(url)
    driver.maximize_window()
	
	#找到登录/注册link,点击弹出账号输入窗口
    login_button_main=driver.find_element_by_link_text('登录/注册')
    login_button_main.click()
    print(driver.page_source)
    time.sleep(3)
	
	#找到账号密码输入框,输入内容,并点击“登录”按钮
    input_tags=driver.find_elements_by_tag_name('input') 
    print('INPUT:',[put.get_attribute('placeholder') for put in input_tags])
    for input_tag in input_tags:
        if input_tag.get_attribute('placeholder')=='请输入用户名':
            input_tag.clear()
            input_tag.send_keys("wozuimei")
        if input_tag.get_attribute('placeholder')=='请输入密码':
            input_tag.clear()
            input_tag.send_keys("wzm66666")
    login_button=driver.find_element_by_link_text('登录')
    login_button.click()
    time.sleep(5)
    
    #进入指定账号后,获取cookie
    cookie = driver.get_cookies()
    print(type(cookie)) #list类型,一个字典为一个元素
    print(cookie)
    print({cookie[4]['name']:cookie[4]['value']})

    driver.close()
    return cookie

2、post文件(包括图片文件):

url = 'https://xxxx/xxxxx/Auto'  
files = {'file': open(file_name, 'rb')}
response = requests.post(url, files=files)
json = response.json()
print(json)

【附注】在post json时,其中的字段需要的文件名可能需要进行GUID编码(Python中UUID)

import uuid
# uuid.NAMESPACE_DNS, uuid.NAMESPACE_OID
print(uuid.uuid3(uuid.NAMESPACE_OID,'581.jpg')) #结果:5e45b801-43da-3d71-a67c-38b803d9c9b6
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值