1、算法框架解釋
? ? 針對這個案例,現在對爬蟲的基礎使用做總結如下:
? ? 1、算法框架
? ? (1)設定傳入參數
? ? ? ? ~url:
? ? ? ? ? ? 當前整個頁面的url:當前頁面的網址
? ? ? ? ? ? 當前頁面某個局部的url:打開檢查
? ? ? ? ~data:需要爬取數據的關鍵字,即搜索內容
? ? ? ? ~param:需要獲取哪些(類型)的數據,即數據類型
? ? ? ? ~headers:UA偽裝
? ? (2)得到get/post請求響應
? ? ? ? 根據”檢查“結果進行判斷:
? ? ? ? ? ? get請求:response=requests.get(url=**,data=**,param=**,headers=**)
? ? ? ? ? ? post請求:response=requests.post(url=**,data=**,param=**,headers=**)
? ? (3)將得到的請求響應json化數據
? ? ? ? 此處以request.get/post請求數據為dict為例:
? ? ? ? dict_obj=response.json() ? ?#在這里,你得到的其實是一個python對象,也就是python的字典
? ? (4)持久化存儲
? ? ? ? ~得到存儲地址和修改權限
? ? ? ? ? ? fp=open("目錄",'w',encoding="UTF-8)
? ? ? ? ~將python對象編碼成Json字符串>>格式轉化>>python(dict)——>json
? ? ? ? ? ? json.dump(返回的json數據>>dict_obj,fp=存儲地址>>fp,ensure_ascii=False)
? ? ? ? ~結束
2、代碼解析?
import requests
import json""""""
if __name__ == "__main__":print("開始爬取")# (1)post_url = 'https://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'post_data = {'kw': '上海'}post_param = {"cname": "","pid": "","keyword": "上海","pageIndex": "1","pageSize": "10"}post_header = {"User-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) ""Chrome/119.0.0.0 Mobile Safari/537.36"}# (2)response = requests.post(url=post_url, data=post_data, params=post_param, headers=post_header)# (3)dict_obj = response.json()# print(type(dict_obj))# (4)fp = open('./html/KenDeJi.json', 'w', encoding='UTF-8')json.dump(dict_obj, fp=fp, ensure_ascii=False)print("over")