1. 程式人生 > >Python實例之抓取網易雲課堂搜索數據(post方式json型數據)並保存為TXT

Python實例之抓取網易雲課堂搜索數據(post方式json型數據)並保存為TXT

網易雲 pytho sco 關鍵詞 page json ner urn 頁碼

本實例實現了抓取網易雲課堂中以‘java’為關鍵字的搜索結果,經詳細查看請求的方式為post,請求的結果為JSON數據

具體實現代碼如下:

import requests
import json
finalstr = ‘‘               #初始化字符串               
totlePage = 0                #初始化總頁數
test = 0                    #初始化數據總條數
url = http://study.163.com/p/search/studycourse.json
headers = {content-type: 
application/json} def getData(count): #定義一個方法,返回json型請求結果 payload = { pageIndex:count, #頁碼為變量 pageSize:50, keyword:java, searchTimeType:-1, orderType:5, priceType:-1 } req = requests.post(url,data=json.dumps(payload),headers=headers) res_json
= json.loads(req.text) return res_json final = getData(1)[result][list] #判斷是否有搜索結果 if final != None: totlePage = getData(1)[result][query][totlePageCount] #獲取頁碼總數 for j in range(1,totlePage+1): #頁碼循環 final = getData(j)[result][list]
for i in range(len(final)): #每頁中的數據項循環 rt = 標題:+final[i][productName]+\n finalstr += rt rp = 發布者:+final[i][provider]+\n finalstr += rp strpri = final[i][discountPrice] if strpri == None: strpri = 0 rn = 價格:+str(strpri)+\n finalstr += rn strcou = final[i][learnerCount] if strcou == None: strcou = 0 rd = 學習人數:+str(strcou)+\n\n finalstr += rd print(當前正在讀取第+str(j)+頁的第+str(i+1)+條數據...) test += 1 f = open(網易雲課堂搜索java時的數據,共+str(test)+條.txt,w,1,UTF-8) #保存數據到TXT f.write(finalstr) print(正在保存。。。) f.close() print(保存完畢!共+str(test)+條數據) else: print(沒有查詢結果,請換個關鍵詞試試!)

Python實例之抓取網易雲課堂搜索數據(post方式json型數據)並保存為TXT