import requests import json def getdata(index): a=input("調用gedata方法") print("正在抓取{index}頁數據") payload = {"pageIndex":index, "pageSize":700, "relativeOffset":50, "frontCategoryId":400000001295013, "searchTimeType":-1, "orderType":50, "priceType":-1, "activityId":0, "keyword":"" } payload = json.dumps(payload) headers = {"Accept":"application/json", "Host":"study.163.com", "Origin":"https://study.163.com", "Content-Type":"application/json", "Referer":"https://study.163.com/courses", "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36" } req = requests.post("https://study.163.com/p/search/studycourse.json",data=payload,headers=headers) e=input("成功post到數據") print(type(req)) res_json = json.loads(req.text) print(type(res_json)) with open("C:/Users/Administrator/Desktop/wangyiCloud.json","w") as f: json.dump(res_json,f) print("寫入文件完成...") a=getdata(1) b=input("運行到了這")
//curl模擬post獲取網易雲數據 public function wangyiDataAction(){ $url = "https://study.163.com/p/search/studycourse.json"; $headers = array( "Accept" =>"application/json", "Host" =>"study.163.com", "Origin" =>"https://study.163.com", "Content-Type"=>"application/json", "Referer" =>"https://study.163.com/courses", "User-Agent"=>"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36", ); $payload = array( "pageIndex" =>1, "pageSize" =>700, "relativeOffset"=>50, "frontCategoryId"=>400000001295013, "searchTimeType"=>-1, "orderType" =>50, "priceType" =>-1, "activityId" =>0, "keyword" =>"", ); $payload = json_encode($payload); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($curl, CURLOPT_HEADER, $headers); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $payload); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($curl); curl_close($curl); echo"<pre>";print_r($output); return $output; }
import requests import json def getdata(index): a=input("調用gedata方法") print("正在抓取{index}頁數據") payload = {"pageIndex":index, "pageSize":700, "relativeOffset":50, "frontCategoryId":400000001295013, "searchTimeType":-1, "orderType":50, "priceType":-1, "activityId":0, "keyword":"" } print(type(payload)) payload = json.dumps(payload) print(type(payload)) headers = {"Accept":"application/json", "Host":"study.163.com", "Origin":"https://study.163.com", "Content-Type":"application/json", "Referer":"https://study.163.com/courses", "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36" } print(type(headers)) req = requests.post("https://study.163.com/p/search/studycourse.json",data=payload,headers=headers) e=input("成功post到數據") print(type(req)) res_json = json.loads(req.text) print(type(res_json)) with open("C:/Users/Administrator/Desktop/wangyiPublic.json","w") as f: json.dump(res_json,f) print("寫入文件完成...") a=getdata(1) b=input("運行到了這")
//經過python post獲取到https://study.163.com/p/search/studycourse.json的數據,存入文件後,再經過php處理 public function readJsonAction(){ $wangyi = file_get_contents("C:/Users/Administrator/Desktop/wangyi.json"); $wangyi = json_decode($wangyi); $wangyi = $wangyi->result->list; $size = sizeof($wangyi);print_r($size); for ($i=0; $i < $size; $i++) { $courseInfo = $wangyi[$i]; $courseInfo = (array)$courseInfo; $insertData = array( 'title' => $courseInfo['title'], 'productName' => $courseInfo['productName'], 'lectorName' => $courseInfo['lectorName'], 'learnerCount' => $courseInfo['learnerCount'], 'lessonCount' => $courseInfo['lessonCount'], 'description' => $courseInfo['description'], 'score' => $courseInfo['score'], 'type' => $courseInfo['type'], 'imgUrl' => $courseInfo['imgUrl'], 'addtime' => date("Y-m-d H:i:s",time()) ); $this->addCsvFile($insertData); echo"<pre>{$insertData['title']}寫入成功"; } }
//網易公開課數據,數據隱藏在下面的url中,經過get方式獲取,再處理 public function wangyiPublicAction(){ $url = "https://vip.open.163.com/open/trade/pc/course/listByClassify.do?classifyId=-1&type=2&page=1&size=1032"; $res = $this->https_request($url); $wangyiPublic = json_decode($res); $wangyiPublic = $wangyiPublic->data->items; $size = sizeof($wangyiPublic);print_r($size); for ($i=0; $i < $size; $i++) { $courseInfo = $wangyiPublic[$i]; $courseInfo = (array)$courseInfo; $insertData = array( 'title' => $courseInfo['title'], 'subtitle' => $courseInfo['subtitle'], 'authorName'=> $courseInfo['authorName'], 'authorDesc'=> $courseInfo['authorDescription'], 'price' => $courseInfo['originPrice']/100, 'chapter' => $courseInfo['contentCount'], 'purchase' => $courseInfo['purchaseCount'], 'interest' => $courseInfo['interestCount'], ); $this->addCsvFile($insertData); echo"<pre>{$insertData['title']}寫入成功"; } }