1. 程式人生 > >爬蟲案例—中基協數據爬取

爬蟲案例—中基協數據爬取

class size api 部分 javascrip post enc encoding type

因為工作原因,需要爬取相關網站的數據,包括中基協網站和天眼查部分數據。


一、中基協網站

爬取思路:

1.查看目標頁:http://gs.amac.org.cn/amac-infodisc/api/pof/manager?rand=0.9775162173180119&page=%s&size=50

發現有隨機數字串(刷新反爬措施),以及頁碼和每頁信息條數,可以用來拼接爬取url

用一個循環爬取所有展示頁面,用到requests庫以及random函數生成隨機數

返回的是json數據,直接用request的json函數解析數據。

2.save函數用來保存目標頁面的詳細數據,可根據需要爬取。

 1 import requests
 2 import random
 3 import json
 4  
 5 def save(school_datas):
 6     for data1 in school_datas:
 7         # print(data)
 8         id = data1[id]
 9         managerName = data1[managerName]
10         artificialPersonName = data1[artificialPersonName]
11         regAdrAgg = data1[
regAdrAgg] 12 registerNo = data1[registerNo] 13 print(id, managerName, artificialPersonName, regAdrAgg,registerNo) 14 15 for i in range(0, 427): 16 print("第%s頁====================="%str(i)) 17 header={ 18 Accept:application/json, text/javascript, */*; q=0.01, 19
Accept-Encoding:gzip, deflate, 20 Connection:keep-alive, 21 Host:gs.amac.org.cn, 22 Origin:http://gs.amac.org.cn, 23 Referer:http://gs.amac.org.cn/amac-infodisc/res/pof/manager/managerList.html, 24 User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36 25 } 26 r=random.random() 27 print(str(r)) 28 30 # json={"rand":‘0.0045470034372876444‘,"page":str(i),"size":"50"} 31 # http://gs.amac.org.cn/amac-infodisc/api/pof/manager?rand=0.9775162173180119&page=1&size=50 32 # data= requests.post("http://gs.amac.org.cn/amac-infodisc/api/pof/manager",json={‘rand‘:str(r),‘page‘:str(i),‘size‘:‘50‘},headers=header)#.json() 33 url="http://gs.amac.org.cn/amac-infodisc/api/pof/manager?rand=0.9775162173180119&page=%s&size=50" 34 data= requests.post(url%i,json={rand:str(r),page:str(i),size:50}).json() 35 40 41 # print (type(r)) 42 # print (r.status_code) 43 45 # print (r.cookies) 46 # print(r.text,"\n") 47 # print(r.json()) 48 55 56 print("每一頁信息條數——>", len(data[content])) 57 print("全部信息條數——>", data["totalElements"]) 58 print("每頁有——>", data["size"]) 59 print("總頁數-->>", data["totalPages"]) 60 61 school_datas = data["content"] 62 save(school_datas)


爬蟲案例—中基協數據爬取