分析如下,我們可以看到使用的post請求,數(shù)據(jù)類型form data 知道這些就簡單了.
#-*- cdoeing = utf-8 -*-#@Time : 2020-12-17#@Author : LBOceanimport requests
import pymysql
url ='http://cqcvc.iflysse.com/Handler/AskHandler.ashx'
heard ={'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8','User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36','Cookie':'這里寫網(wǎng)頁的cooike'}payload ={'sEcho':1,'iColumns':6,'sColumns':',,,,,','iDisplayStart':0,'iDisplayLength':20,'mDataProp_0':0,'bSortable_0':False,'mDataProp_1':'Title','bSortable_1':False,'mDataProp_2':2,'bSortable_2':False,'mDataProp_3':3,'bSortable_3':False,'mDataProp_4':4,'bSortable_4':False,'mDataProp_5':'SubmitTimeStr','bSortable_5':False,'iSortCol_0':1,'sSortDir_0':'desc','iSortingCols':1,'Type':0,'action':2,'IsOver':1,'LabelList':[]}#from data 數(shù)據(jù)#連接數(shù)據(jù)庫
db = pymysql.connect(host="localhost",user="root",passwd="110120",db="hous")print("數(shù)據(jù)庫連接成功")
cursor = db.cursor()for i inrange(0,20*20+1,20):#每頁又20個數(shù)據(jù),獲取20頁data_str_start ='sEcho=1&iColumns=6&sColumns=%2C%2C%2C%2C%2C&iDisplayStart='data_str_end ='&iDisplayLength=20&mDataProp_0=0&bSortable_0=false&mDataProp_1=Title&bSortable_1=false&mDataProp_2=2&bSortable_2=false&mDataProp_3=3&bSortable_3=false&mDataProp_4=4&bSortable_4=false&mDataProp_5=SubmitTimeStr&bSortable_5=false&iSortCol_0=1&sSortDir_0=desc&iSortingCols=1&Type=0&action=2&IsOver=1&LabelList=%5B%5D'data_end = data_str_start +str(i)+ data_str_end#這里我們采用了拼接的方式來獲取數(shù)據(jù)home = requests.post(url=url, headers=heard, data=data_end).json()# json解析數(shù)據(jù)dataforce = home['aaData']#我們想要的數(shù)據(jù)在aaData后面,所以這里過濾掉了前面的數(shù)據(jù)# print(dataforce.encoding)for e in dataforce:title = e["Title"]score = e["Score"]author = e["SubmitterName"]ansnum = e["AnswerNum"]pubtime = e["SubmitTime"]value =(title,score,author,ansnum,pubtime)sql ='INSERT INTO ifly_comm_info(title,score,author,ansnum,pubtime) values(%s,%s,%s,%s,%s)'if cursor.execute(sql,value):print("插入成功")db.commit()print(title)print(score)print(author)print(ansnum)print(pubtime)
數(shù)據(jù)庫信息 CREATE TABLE ifly_comm_info ( id int NOT NULL AUTO_INCREMENT, title varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, score float(30,0) NOT NULL, author varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, ansnum float(30,0) NOT NULL, pubtime varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=1302 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci