二、爬蟲-爬取肯德基在北京的店鋪地址

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")

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/160418.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/160418.shtml
英文地址,請注明出處:http://en.pswp.cn/news/160418.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

DB2中實現數據字段的拼接(LISTAGG() 與 xml2clob、xmlagg)

DB2中實現數據字段拼接(LISTAGG 與 xml2clob、xmlagg) 1. 使用函數LISTAGG()1.1 同oracle實現方式1.2 DB2中使用LISTAGG()1.2.1 關于DB2版本1.2.2 數據準備1.2.3 代碼實現 2 解決DB2中關于 LISTAGG() 超長問題2.1 使用xmlagg xmlelement2.2 將xml標簽去…

數據結構與算法編程題11

已知兩個鏈表A和B分別表示兩個集合&#xff0c;其元素遞增排列。 請設計算法求出A與B的交集&#xff0c;并存放于A鏈表中。 a: 1, 2, 2, 4, 5, 7, 8, 9, 10 b: 1, 2, 3, 6, 7, 8 #include <iostream> using namespace std;typedef int Elemtype; #define ERROR 0; #defin…

【iOS】實現評論區展開效果

文章目錄 前言實現行高自適應實現評論展開效果解決cell中的buttom的復用問題 前言 在知乎日報的評論區中&#xff0c;用到了Masonry行高自適應來實現評論的展開&#xff0c;這里設計許多控件的約束問題&#xff0c;當時困擾了筆者許久&#xff0c;特此撰寫博客記錄 實現行高自…

如何構建更簡潔的前端架構?

目錄 為什么需要前端架構&#xff1f; 那么&#xff0c;前端架構是什么樣的呢&#xff1f; 使用了哪些層&#xff1f; 那么&#xff0c;這種架構會出什么問題呢&#xff1f; 我們應該如何避免這些錯誤&#xff1f; 哪些原則應適用于組件&#xff1f; Anti-Patterns 反模…

小程序存在優惠卷遍歷,但是歪了

進入小程序&#xff0c;因為是一個小商城&#xff0c;所以照例先查看收貨地址是否存在越權&#xff0c;以及能否未授權訪問&#xff0c;但是發現不存在這些問題&#xff0c;所以去查看優惠卷 進入領券中心&#xff0c;點擊領取優惠券時抓包 發現數據包&#xff0c;存在敏感參數…

數據庫的級聯刪除

級聯刪除是指在數據庫中刪除一個對象時&#xff0c;與該對象有關的其他對象也被自動刪除。在 Django 中&#xff0c;級聯刪除通常通過在模型中定義外鍵時使用 on_delete 參數來實現。以下是一些常見的 on_delete 選項&#xff1a; 1.models.CASCADE: 當關聯的對象被刪除時&…

CentOS 7 使用Fmt庫

安裝 fmt Git下載地址&#xff1a;https://github.com/fmtlib/fmt 步驟1&#xff1a;首先&#xff0c;你需要下載fmt的源代碼。你可以從https://github.com/fmtlib/fmt或者源代碼官方網站下載。并上傳至/usr/local/source_code/ ? 步驟2&#xff1a;下載完成后&#xff…

【Docker】Docker安裝Nginx配置靜態資源

1.下載鏡像 2.創建nginx配置文件 3.創建nginx容器運行 4.配置nginx靜態資源 1.下載鏡像 Dockerhub官網&#xff1a;Docker docker pull nginx docker pull nginx下載最新版本 默認latest 下載指定版本docker pull nginx:xxx 2.創建nginx配置文件 啟動容器之前要創建nginx…

怎么使用sentinel,以及所有的知識點

Sentinel是一個開源的流量控制和實時監控系統&#xff0c;主要用于保護企業級應用程序免受不良的請求。下面是使用Sentinel需要了解的知識點&#xff1a; 1. 什么是流量控制&#xff1f; 流量控制指的是限制應用程序的請求流量&#xff0c;防止過多的請求超出系統的承受范圍。…

基于單片機停車場環境監測系統仿真設計

**單片機設計介紹&#xff0c; 基于單片機停車場環境監測系統仿真設計 文章目錄 一 概要二、功能設計設計思路 三、 軟件設計原理圖 五、 程序六、 文章目錄 一 概要 基于單片機的停車場環境監測系統是一種利用單片機技術實現環境監測和數據處理的系統。它可以感知停車場的溫濕…

Python (十一) 迭代器與生成器

迭代器 迭代器是訪問集合元素的一種方式&#xff0c;可以記住遍歷的位置的對象 迭代器有兩個基本的方法&#xff1a;iter() 和 next() 字符串&#xff0c;列表或元組對象都可用于創建迭代器 字符串迭代 str1 Python str_iter iter(str1) print(next(str_iter)) print(next(st…

zip4j壓縮使用總結

一、引入依賴 <dependency><groupId>net.lingala.zip4j</groupId><artifactId>zip4j</artifactId><version>1.3.1</version></dependency>二、使用添加文件&#xff08;addFiles&#xff09;的方式生成壓縮包 /*** Author wan…

藍橋杯物聯網_STM32L071_2_繼電器控制

CubeMX配置&#xff1a; Function.c及Function.h&#xff1a; #include "Function.h" #include "gpio.h" void Function_LD5_ON(void){HAL_GPIO_WritePin(LD5_GPIO_Port, LD5_Pin, GPIO_PIN_RESET); }void Function_LD5_OFF(void){HAL_GPIO_WritePin(LD5_…

HarmonyOS應用開發者認證題目滿分指南

為了幫助大家快速的上手HarmonyOS應用程序開發&#xff0c;官方制作了一些免費的課程&#xff1a;HarmonyOS第一課。每個課程后面都有一些練習題&#xff0c;下面就是這些題目的滿分答案。 【習題】運行Hello World工程 判斷題 1.DevEco Studio是開發HarmonyOS應用的一站式集…

定時器如何計算觸發頻率?

定時器觸發頻率的計算公式為&#xff1a;定時器時鐘頻率/&#xff08;預分頻系數*計數周期1&#xff09;。其中&#xff0c;定時器時鐘頻率是指定時器所連接的總線頻率&#xff0c;預分頻系數和計數周期需要根據具體的需求進行設置。預分頻系數用于將總線頻率分頻&#xff0c;計…

Power Apps-下拉列表控件

插入一個下拉列表控件 設置值的兩種方式 1.通過屬性items寫數組設置 2.通過連接數據表&#xff0c;先在右側操作面板中選擇項目中的數據表 再從Value中選擇其中一列&#xff0c;下拉就可以選擇該列全部行的值 但是這樣會導致有很多重復的字段&#xff0c;所以可以在items屬性里…

好用的博客評論系統 Valine 使用及避坑指南

評論系統&#xff0c;即網站的一個小功能&#xff0c;展示評論內容和用戶輸入框。開源免費的評論系統可不多&#xff0c;原來很火的"多說"評論系統都關閉了&#xff0c;而Disqus又是國外的訪問受限。無意間發現了Valine&#xff0c;挺不錯的&#xff0c;分享給大家。…

如何用cmd命令快速搭建FTP服務

環境&#xff1a; Win10專業版 問題描述&#xff1a; 如何用cmd命令快速搭建FTP服務 解決方案&#xff1a; 1.輸入以下命令來安裝IIS&#xff08;Internet Information Services&#xff09;&#xff1a; dism /online /enable-feature /featurename:IIS-FTPServer /all …

IDEA集成Git

一、配置Git忽略文件 例如&#xff1a;用eclipse創建的項目有其特定的文件&#xff0c;例如&#xff1a;.classpath,.project文件&#xff0c;而用IDEA創建的項目也有其特定的文件&#xff1a;.xml,.iml,.target,我們需要最好忽略他們。 為什么要忽略他們&#xff1f; 與項目…

從Github登錄的雙因子驗證到基于時間戳的一次性密碼:2FA、OTP與TOTP

Github于2023-03-09推出一項提高軟件安全標準的措施&#xff0c;所有在Github上貢獻過代碼的開發人員在年底前必須完成 2FA&#xff08;Two-factory authentication&#xff0c;雙因子認證&#xff09;。初聽此事之時&#xff0c;不以為意&#xff0c;因為自己之前就知道雙因子…