python批量請求注冊接口&爬蟲相關問題記錄

背景批量生成賬號萝毛,依次循環(huán)給每個帳號模擬真實注冊場景,添加appname和deviceid,然后登錄

  1. 批量生成賬號,代碼如下
import json
import requests

for j in range(1, 21):
    body = []
    #因為接口傳數組陷舅,一次最多接受數組元素500個
    for i in range(1, 501):
        print(str(i)+"uuu"+str(j))
        data = {}
        data["account"]="mctester"+str(i)+"uuu"+str(j)
        data["hospitalName"]="北京協(xié)和醫(yī)院"
        data["department"]='中醫(yī)消化科'
        data["role"]='醫(yī)生'
        data["type"]="USERNAME"
        data["fullName"]="測試中"
        data["password"]='test12345'
        data["userId"]=0
        data["title"]="主任醫(yī)師"
        body.append(data)
      print(body)
      url = "http://qa-uas-xxx.xxx.xxx"
      r = requests.post(url, headers={"Content-Type": "application/json"}, data=json.dumps(body))
      print(r.json())

打印response的各個屬性


image.png

在HTTP響應頭的Link中的屬性參數,用來表示與另一個資源之間的類型關系

  1. 給每個帳號审洞,添加appname和deviceid莱睁,模擬真實注冊場景,然后登錄
import requests
import uuid
import json

for i in range(1,6):
  for j in range(1, 6):
        deviceid = str(uuid.uuid1())
        #上下文接口url
        con_url = "http://qa-uas.xxx.xxxcontext"
        #上下文接口body
        con_body = {
          "app":{
            "name":"medclips_plus",
            "version" : "0.0.1",
            "hotfixVersion":"789"
          },
          "device":{
            "deviceId":deviceid,
            "name":"mikasa",
            "systemName" :"ios",
            "systemVersion":"13.0",
            "model":"Samsung",
            "localizedModel":"a1000"
          }
        }

        #上下文接口header
        headers = {
          'x-User-Agent': 'medclips_plus/5.26.0 (iPhone10,3, iOS 13.3.1) net/WIFI channelId/1000',
          'Content-Type': 'application/json',
          'X-Trace-Id': 'testid'
        }

        context = requests.request("POST", con_url, headers=headers, data = json.dumps(con_body))
        con_dic = json.loads(context.text)
        #返回的data值token下個登錄接口用
        print(con_dic['data'])


        #登錄
        login_url = "http://qa-uas.xxx.xxx/login"
        
        header={}
        header['X-User-Token']=con_dic['data']
        header['x-User-Agent']='medclips_plus/5.26.0 (iPhone10,3, iOS 13.3.1) net/WIFI channelId/1000'
        header['X-Security-Id']= deviceid
        header['Content-Type']='application/json'
        login_body = {
            'account':"mctester"+str(i)+"uuu"+str(j),
            'password':'test12345'
        }


        response = requests.request("POST", login_url, headers=header, data = login_body)

        print(response.text)

  • 注意一個地方是预明,requests.request傳參headers后面的值必須是字典格式缩赛,實驗了下headers傳json格式耙箍,報錯AttributeError: 'str' object has no attribute 'items'


    image.png
  1. python相比java報錯信息不是很直觀撰糠,比如上面哪個字段格式錯誤,提示需要的格式是什么就好了辩昆,還繞個彎說傳的格式沒有預期格式的屬性阅酪,得倒推這屬性是啥數據類型所屬的屬性,那假如多個數據類型都有這個屬性汁针,那還不得一個個找了
  2. python相比java特別靈活术辐,它不需要調更多方法,不同類型變量可以傳參給另一個變量也太好用了施无,不用太多的格式限制辉词、格式轉換
  • 注意另一個地方是,requests.request的data參數猾骡,必須傳json瑞躺,否則請求參數錯誤返回400
con_body = {
  "app":{
    "name":"medclips_plus",
    "version" : "0.0.1",
    "hotfixVersion":"789"
  },
  "device":{
    "deviceId":str(uuid.uuid1()),
    "name":"mikasa",
    "systemName" :"ios",
    "systemVersion":"13.0",
    "model":"Samsung",
    "localizedModel":"a1000"
  }
}
兩種格式對比.png
  • 另外一個小問題敷搪,python 2我們經常在文件頭聲明編碼格式utf8,或者數據輸出時編碼格式設置utf8幢哨,python 3默認編碼格式utf8赡勘,不需要聲明和設置


    image.png

    直接用response.text就可以了~
    當然如果需要非utf8的格式,還要把默認utf8格式再做相應轉換捞镰。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末闸与,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子岸售,更是在濱河造成了極大的恐慌践樱,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件冰评,死亡現場離奇詭異映胁,居然都是意外死亡,警方通過查閱死者的電腦和手機甲雅,發(fā)現死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門解孙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人抛人,你說我怎么就攤上這事弛姜。” “怎么了妖枚?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵廷臼,是天一觀的道長。 經常有香客問我绝页,道長荠商,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任续誉,我火速辦了婚禮莱没,結果婚禮上,老公的妹妹穿的比我還像新娘酷鸦。我一直安慰自己饰躲,他們只是感情好,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布臼隔。 她就那樣靜靜地躺著肾档,像睡著了一般有鹿。 火紅的嫁衣襯著肌膚如雪佑笋。 梳的紋絲不亂的頭發(fā)上寺滚,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天,我揣著相機與錄音氨淌,去河邊找鬼泊愧。 笑死狡逢,一個胖子當著我的面吹牛,可吹牛的內容都是我干的拼卵。 我是一名探鬼主播奢浑,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼腋腮!你這毒婦竟也來了雀彼?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤即寡,失蹤者是張志新(化名)和其女友劉穎徊哑,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體聪富,經...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡莺丑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了墩蔓。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片梢莽。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖奸披,靈堂內的尸體忽然破棺而出昏名,到底是詐尸還是另有隱情,我是刑警寧澤阵面,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布轻局,位于F島的核電站,受9級特大地震影響样刷,放射性物質發(fā)生泄漏仑扑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一置鼻、第九天 我趴在偏房一處隱蔽的房頂上張望镇饮。 院中可真熱鬧,春花似錦沃疮、人聲如沸盒让。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至姨蝴,卻和暖如春俊啼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背左医。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工授帕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留同木,地道東北人。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓跛十,卻偏偏與公主長得像彤路,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子芥映,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內容