requests學(xué)習(xí)筆記——路飛學(xué)城Python課程6作業(yè)
視頻地址:https://www.bilibili.com/video/BV1Yh411o7Sz?share_source=copy_web
需求:kfc官網(wǎng)的站點(diǎn)信息

如圖所示,kfc官網(wǎng)中的餐廳查詢中,輸入搜索關(guān)鍵字獲取查詢的所有結(jié)果
首先抓包,

請(qǐng)求的負(fù)載中包含五個(gè)數(shù)據(jù),請(qǐng)求參數(shù)包含一個(gè)。

再看相應(yīng)內(nèi)容,返回了兩個(gè)表,分別存儲(chǔ)rowcount查詢結(jié)果總行數(shù),和當(dāng)前頁(yè)查詢結(jié)果

可以看出,數(shù)據(jù)中keyword是搜索的內(nèi)容,pagesize是當(dāng)前頁(yè)的查詢結(jié)果數(shù)。于是,可以請(qǐng)求兩次,第一次只讀取查詢結(jié)果的總行數(shù),并在第二次查詢時(shí)將data中的keyword改為總行數(shù)即可獲得全部查詢結(jié)果。
因此腳本大致結(jié)構(gòu)如下:
一、定義requests發(fā)送請(qǐng)求需要的變量,如url,data,param等
二、發(fā)起第一次請(qǐng)求,并將返回的內(nèi)容解析成字典類型方便讀取其中的信息
三、更改data中的pagesize值,發(fā)起第二次請(qǐng)求,并將其轉(zhuǎn)化為字典讀取第二張表的信息
四、將第二張表的內(nèi)容保存為csv或execl,方便閱讀
下面是具體代碼:

其中,將文本信息轉(zhuǎn)換為字典我使用了ast.literal_eval()方法,可以將字符串自動(dòng)解析成字典,但是對(duì)于字符串的格式有嚴(yán)格要求,比如,字典中必須使用雙引號(hào)而不是單引號(hào),字典中不能出現(xiàn)null,這也是我在腳本中使用replace替換文字的原因。
對(duì)字典的處理和保存成csv文件我使用的pandas庫(kù),使用Dataframe方法將字典轉(zhuǎn)化成pandas的dataframe數(shù)據(jù)格式,并使用to_csv方法保存成csv格式