本文目錄一覽:
python測試接口時需要登錄怎麼解決
有些網頁需要你登錄之後才可以訪問,你需要提供賬戶和密碼。
只要在發送http請求時,帶上含有正常登陸的cookie就可以了。
1.首先我們要先了解cookie的工作原理。
Cookie是由服務器端生成,發送給User-Agent(一般是瀏覽器),瀏覽器會將Cookie的key/value保存到某個目錄下的文本文件內,下次請求同一網站時就發送該Cookie給服務器(前提是瀏覽器設置為啟用cookie)。Cookie名稱和值可以由服務器端開發自己定義,對於JSP而言也可以直接寫入jsessionid,這樣服務器可以知道該用戶是否合法用戶以及是否需要重新登錄等。
2.之後我們要獲取到用戶正常登錄的cookie.
python提供了cookieJar的庫,只要把cookieJar的實例作為參數傳到urllib2的一個opener裡面。
然後訪問一次登錄的頁面,cookie就已經保存下來了。之後通過這個實例訪問所有的頁面都帶有正常登陸的cookie了。
以人人網為例子。
Python代碼
#encoding=utf-8
import urllib2
import urllib
import cookielib
def renrenBrower(url,user,password):
#登陸頁面,可以通過抓包工具分析獲得,如fiddler,wireshark
login_page = “hLogin.do”
try:
#獲得一個cookieJar實例
cj = cookielib.CookieJar()
#cookieJar作為參數,獲得一個opener的實例
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
#偽裝成一個正常的瀏覽器,避免有些web服務器拒絕訪問。
opener.addheaders = [(‘User-agent’,’Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)’)]
#生成Post數據,含有登陸用戶名密碼。
data = urllib.urlencode({“email”:user,”password”:password})
#以post的方法訪問登陸頁面,訪問之後cookieJar會自定保存cookie
opener.open(login_page,data)
#以帶cookie的方式訪問頁面
op=opener.open(url)
#讀取頁面源碼
data= op.read()
return data
except Exception,e:
print str(e)
#訪問某用戶的個人主頁,其實這已經實現了人人網的簽到功能。
print renrenBrower(“httm/home”,”用戶名”,”密碼”)
用python建立一個登錄接口的程序
# -*- coding: utf-8 -*-
errortimes=0
while errortimes3:
user=raw_input(“user:”)
password=raw_input(“password:”)
if user==’123′ and password==’456′:
#正確後允許進入並退出循環
print “enter”
break
else:
#錯誤時,出錯計數加1
print “Error , enter again:”
errortimes+=1
else:
#錯誤達到三次,結束循環
print “You are not allowed to enter!”
給你寫個簡單的例子你看看。跟你寫的差別不大,要實現輸入三次失敗就禁止進入,只需要加一個計數的變量就行了,這裡是errortimes。當error times達到三次,就中值循環。靈活借鑒,不要生搬硬套。
再說你寫的問題:
if username = bizhenwei:
這句是比較的,應該用 == 而不是 = 也即if username == bizhenwei:
else:
print”repeat!”
這裡print前缺少縮進。print後缺少空格。
python怎麼獲取需要登陸的接口的數據?
使用Python做爬蟲是很廣泛的應用場景,那就涉及到了Python是如何獲取接口數據的呢?Python擁有很多很強大的類庫,使用urllib即可輕鬆獲取接口返回的數據。
…展開
工具原料Python開發工具url接口,用於請求獲取數據
方法/步驟分步閱讀
1
/4
首先新建一個py文件,導入所需的類庫,urllib,json等。
2
/4
聲明api的url地址,和構造請求頭。
3
/4
使用urlopen方法發起請求並獲取返回的數據。
4
/4
最後就是對返回字符串的處理了。比如字符串的截取,字符串的轉換成json對象,轉換成字段,再獲取對應key的值。
使用Python3實現HTTP get方法。使用聚合數據的應用編程接口,你可以調用小發貓AI寫作API。這是一個免費的應用程序接口,先上代碼,詳細說明寫在後面:
1
2
3
4
5
6
7
8
9
10
11
12
import requests
import time
import re
se = requests.session()
if __name__ == ‘__main__’:
Post_url = “;v=1key=xxxxxx” #自己想辦法弄到key
Post_data = {
‘wenzhang’: ‘床前明月光,疑是地上霜。’
}
Text = se.post(Post_url, data=Post_data).text.replace(“‘”, ‘”‘).replace(‘/ ‘, ‘/’)
print(Text)
首先,什麼是原料葯?應用編程接口的全稱也稱為應用編程接口。它簡稱為應用編程接口。當我第一次接觸接口調用時,我不知道寫什麼,因為我看了整個項目。這個項目是由龍捲風寫的。看了半天龍捲風後,我發現我走錯了方向。我只是直接看着界面,因為沒有人告訴我項目的整個過程。我不得不強迫自己去看它。我所要做的就是找到程序的主入口,然後根據函數一步一步地調用它。
當我編寫接口時,因為我必須配合後台編寫和瀏覽器訪問,每次訪問只需要傳入相應的參數來調用相應的接口。界面可以由他人編寫,也可以由合作公司提供。當然,合作公司提供的不是免費的。現在基本上,如果我不訪問它一次,它只收費幾美分。當你聽到這些,不要低估這幾分。有時候如果你打了幾百萬次電話,會花很多錢。有些人認為,我們不能按月付款嗎?對不起,我不知道。總之,我們一個接一個地計算,因為第一次,我認為我買的那些直接買了我們想要的所有數據,把它們保存在本地數據庫中,當我使用它們時,直接從我自己的數據庫中轉移它們。後來,我發現我想得太多了,偽原創API。
該接口調用由python的請求庫訪問,它基本上是一個get或post請求。有些接口是加密的,然後我們必須用另一方提供給我們的公鑰加密或解密,然後用相應的參數訪問。我們想要的數據基本上是在請求後返回的結果中以json格式解析的。因此,在請求之後,我們可以用請求提供的json函數來解析它,然後提取數據以一次訪問一個數據。
沒錯,接口調用就是這麼簡單,但是有了後台編寫,我才發現請求庫現在有多強大,只要它是http或https,我很高興我在一周內讀完了請求和bs4,我真的不打電話給爬蟲工程師,如果我是爬蟲的時候不學習請求,你能用scrapy寫4=dead來寫它嗎?Urllib的單詞基本上被刪除了。如果你有要求,為什麼要用這個?
python登陸接口不知道怎麼寫
運行結果:
song@ubuntu:~$ python login.py
Please enter userName:ge
Please input passWord:djf
用戶名或密碼錯誤!
Please enter userName:ge
Please input passWord:df
用戶名或密碼錯誤!
Please enter userName:ge
Please input passWord:djff
原創文章,作者:LRTIK,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/313800.html