精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

100行代碼爬取全國所有必勝客餐廳信息

開發 后端 數據分析
數據分析的前提是有數據可分析。如果沒有數據怎么辦?一是可以去一些數據網站下載相關的數據,不過數據內容可能不是自己想要的。二是自己爬取一些網站數據。今天,我就爬取全國各地所有的必勝客餐廳信息,以便后續做數據分析。

當我剛接觸 Python 時,我已經被 Python 深深所吸引。Python 吸引我的地方不僅僅能用其編寫網絡爬蟲,而且能用于數據分析。我能將大量的數據中以圖形化方式呈現出來,更加直觀的解讀數據。

數據分析的前提是有數據可分析。如果沒有數據怎么辦?一是可以去一些數據網站下載相關的數據,不過數據內容可能不是自己想要的。二是自己爬取一些網站數據。

今天,我就爬取全國各地所有的必勝客餐廳信息,以便后續做數據分析。

01抓取目標

我們要爬取的目標是必勝客中國。打開必勝客中國首頁,進入“餐廳查詢”頁面。

100行代碼爬取全國所有必勝客餐廳信息

我們要爬取的數據內容有城市、餐廳名字、餐廳地址以及餐廳聯系電話。因為我看到頁面中有地圖,所以頁面一定有餐廳地址的經緯度。因此,餐廳的經緯度也是我們需要爬取的數據。

至于全國有必勝客餐廳的城市列表,我們可以通過頁面的“切換城市”獲取。

100行代碼爬取全國所有必勝客餐廳信息

02分析目頁面

在編寫爬蟲程序之前,我都是先對頁面進行簡單分析,然后指定爬取思路。而且對頁面結構進行分析往往會有一些意想不到的收獲。

我們使用瀏覽器的開發者工具對頁面結構進行簡單分析。

100行代碼爬取全國所有必勝客餐廳信息

我們在 StoreList 頁面中能找到我們所需的數據。這個能確定數據提取的 Xpath 語法。

StoreList 頁面的 Response 內容比較長。我們先不著急關閉頁面,往下看看,找找看是否有其他可利用的內容。***,我們找到調用獲取餐廳列表信息的 JavaScript 函數代碼。

100行代碼爬取全國所有必勝客餐廳信息

我們接著搜索下GetStoreList函數,看看瀏覽器如何獲取餐廳列表信息的。

100行代碼爬取全國所有必勝客餐廳信息

從代碼中,我們可以了解到頁面使用 Ajax 方式來獲取數據。頁面以 POST 方式請求地址http://www.pizzahut.com.cn/StoreList/Index。同時,請求還攜帶參數 pageIndex 和 pageSize。

03爬取思路

經過一番頁面結構分析之后,我們指定爬取思路。首先,我們先獲取城市信息。然后將其作為參數,構建 HTTP 請求訪問必勝客服務器來獲取當前城市中所有餐廳數據。

為了方便數據爬取,我將所有城市全部寫入到 cities.txt 中。等要爬取數據時,我們再從文件中讀取城市信息。

爬取思路看起來沒有錯,但是還是有個難題沒有搞定。我們每次打開必勝客的官網,頁面每次都會自動定位到我們所在的城市。如果無法破解城市定位問題,我們只能抓取一個城市數據。

于是乎,我們再次瀏覽首頁,看看能不能找到一些可用的信息。最終,我們發現頁面的 cookies 中有個 iplocation 字段。我將其進行 Url 解碼,得到 深圳|0|0 這樣的信息。

100行代碼爬取全國所有必勝客餐廳信息

看到這信息,我恍然大悟。原來必勝客網站根據我們的 IP 地址來設置初始城市信息。如果我們能偽造出 iplocation 字段信息,那就可以隨便修改城市了。

04代碼實現

***步是從文件中讀取城市信息。

 

  1. # 全國有必勝客餐廳的城市, 我將城市放到文件中, 一共 380 個城市 
  2. cities = [] 
  3.  
  4. def get_cities(): 
  5.     """ 從文件中獲取城市 """  file_name = 'cities.txt' 
  6.   with open(file_name, 'r', encoding='UTF-8-sig'as file: 
  7.         for line in file: 
  8.             city = line.replace(' 
  9. ', '') 
  10.             cities.append(city) 

第二步是依次遍歷 cities 列表,將每個城市作為參數,構造 Cookies 的 iplocation 字段。

  1. # 依次遍歷所有城市的餐廳 
  2. for city in cities: 
  3.     restaurants = get_stores(city, count
  4.     results[city] = restaurants 
  5.     count += 1 
  6.   time.sleep(2) 

然后,我們再以 POST 方式攜帶 Cookie 去請求必勝客服務器。***再對返回頁面數據進行提取。

  1. def get_stores(city, count): 
  2.     """ 根據城市獲取餐廳信息 """ 
  3.     session = requests.Session() 
  4.     # 對【城市|0|0】進行 Url 編碼 
  5.     city_urlencode = quote(city + '|0|0'
  6.     # 用來存儲首頁的 cookies 
  7.     cookies = requests.cookies.RequestsCookieJar() 
  8.  
  9.     headers = { 
  10.         'User-agent''Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 UBrowser/6.2.3964.2 Safari/537.36'
  11.         'accept''text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
  12.         'Host''www.pizzahut.com.cn'
  13.         'Cache-Control''max-age=0'
  14.         'Connection''keep-alive'
  15.     } 
  16.  
  17.     print('============第'count'個城市:', city, '============'
  18.     resp_from_index = session.get('http://www.pizzahut.com.cn/', headers=headers) 
  19.     # print(resp_from_index.cookies) 
  20.     # 然后將原來 cookies 的 iplocation 字段,設置自己想要抓取城市。 
  21.     cookies.set('AlteonP', resp_from_index.cookies['AlteonP'], domain='www.pizzahut.com.cn'
  22.     cookies.set('iplocation', city_urlencode, domain='www.pizzahut.com.cn'
  23.     # print(cookies) 
  24.  
  25.     page = 1 
  26.     restaurants = [] 
  27.  
  28.     while True
  29.         data = { 
  30.             'pageIndex': page, 
  31.             'pageSize'"50"
  32.         } 
  33.  
  34.         response = session.post('http://www.pizzahut.com.cn/StoreList/Index', headers=headers, data=data, cookies=cookies) 
  35.         html = etree.HTML(response.text) 
  36.         # 獲取餐廳列表所在的 div 標簽 
  37.         divs = html.xpath("//div[@class='re_RNew']"
  38.         temp_items = [] 
  39.         for div in divs: 
  40.             item = {} 
  41.             content = div.xpath('./@onclick')[0] 
  42.             # ClickStore('22.538912,114.09803|城市廣場|深南中路中信城市廣場二樓|0755-25942012','GZH519'
  43.             # 過濾掉括號和后面的內容 
  44.             content = content.split('('')[1].split(')')[0].split('','')[0] 
  45.  
  46.             if len(content.split('|')) == 4: 
  47.                 item['coordinate'] = content.split('|')[0] 
  48.                 item['restaurant_name'] = content.split('|')[1] + '餐廳' 
  49.                 item['address'] = content.split('|')[2] 
  50.                 item['phone'] = content.split('|')[3] 
  51.             else
  52.                 item['restaurant_name'] = content.split('|')[0] + '餐廳' 
  53.                 item['address'] = content.split('|')[1] 
  54.                 item['phone'] = content.split('|')[2] 
  55.             print(item) 
  56.             temp_items.append(item) 
  57.  
  58.         if not temp_items: 
  59.             break 
  60.         restaurants += temp_items 
  61.         page += 1 
  62.         time.sleep(5) 
  63.     return restaurants 

第三步是將城市以及城市所有餐廳信息等數據寫到 Json 文件中。

  1. with open('results.json''w', encoding='UTF-8'as file: 
  2.     file.write(json.dumps(results, indent=4, ensure_ascii=False)) 

05爬取結果

程序運行完之后, 就會在當前目錄下生成一個名為「results.json」文件。完整代碼請見GitHub:

https://github.com/monkey-soft/SchweizerMesser/tree/master/Pizzahut

100行代碼爬取全國所有必勝客餐廳信息

關于作者:極客猴,熱衷于 Python,目前擅長利用 Python 制作網絡爬蟲以及 Django 框架。

責任編輯:未麗燕 來源: Python中文社區
相關推薦

2018-12-10 15:53:41

Python必勝客數據分析

2023-04-11 22:03:36

2017-08-01 17:02:19

代碼Python數據

2023-05-04 07:34:37

Rust代碼CPU

2025-05-22 07:40:32

2017-02-08 14:16:17

C代碼終端

2021-12-16 06:21:16

React組件前端

2020-08-21 13:40:17

Python代碼人體膚色

2018-01-10 22:19:44

2023-11-27 07:10:06

日志中間件

2020-03-26 12:38:15

代碼節點數據

2017-11-17 19:56:46

爬蟲視頻信息數據庫

2025-07-28 01:10:00

2015-02-09 10:43:00

JavaScript

2019-05-05 09:46:01

Python代碼神經網絡

2020-12-07 10:59:01

Python數據工具

2023-02-01 22:40:38

shellDocker

2010-09-02 12:30:40

2015-09-01 16:26:18

Linux內核

2020-07-20 09:20:48

代碼geventPython
點贊
收藏

51CTO技術棧公眾號

成人在线视频免费| 欧美少妇bbw| 自拍日韩欧美| 日韩精品中文字幕有码专区| 天天操天天爽天天射| 二区三区四区高清视频在线观看| 福利一区福利二区| 国产精品老牛影院在线观看| 九九热国产在线| 亚洲婷婷丁香| 欧美va亚洲va在线观看蝴蝶网| 国产真实乱子伦| 中文在线字幕免费观看| 久久青草国产手机看片福利盒子| 91精品在线看| 狠狠狠狠狠狠狠| 欧美日韩国产综合网| 在线中文字幕日韩| 中国xxxx性xxxx产国| 天堂久久一区| 日本精品免费观看高清观看| 隔壁人妻偷人bd中字| av网站无病毒在线| 91蜜桃网址入口| 国产91亚洲精品一区二区三区| 国产午夜无码视频在线观看| 亚洲国产日本| 久久999免费视频| 天天色影综合网| 精品一区二区三| 亚洲国产欧美一区| av在线天堂网| 国产一区一区| 5月丁香婷婷综合| 999精品视频在线| 欧美xoxoxo| 精品福利免费观看| 国产精品国产对白熟妇| 日韩免费影院| 一区二区三区在线免费观看| 一区二区在线观| 日韩伦理在线观看| 国产精品日产欧美久久久久| 日韩av一区二区三区在线 | 日韩视频一区二区三区在线播放免费观看| 深夜福利日韩在线看| 嘿嘿视频在线观看| 欧美日韩中字| 一区二区三区视频观看| 五月天精品在线| 成人免费av| 中文字幕在线日韩| 正在播放国产对白害羞| 人人狠狠综合久久亚洲婷| 伊人久久久久久久久久| 日韩毛片无码永久免费看| 成人精品中文字幕| 日韩亚洲欧美成人| 在线看的片片片免费| 在线电影一区二区| 欧美精品久久久久久久免费观看 | 欧美日韩中文字幕一区| 欧美成人黄色网址| 99精品国产九九国产精品| 日韩一区二区在线看| 日韩大尺度视频| 欧美电影在线观看免费| 精品在线小视频| 久久久久久久久福利| 手机在线电影一区| 欧美日韩电影在线观看| 日韩精品视频免费播放| 美女精品一区| 91九色国产社区在线观看| 亚洲免费不卡视频| 久久精品日产第一区二区三区高清版 | 欧美精品免费看| 久久久无码一区二区三区| 日韩视频一区| 国产精品亚发布| 午夜精品久久久久久久99| 不卡一区在线观看| 亚洲高清在线播放| 在线āv视频| 色综合色综合色综合色综合色综合 | 一二三四区在线观看| 亚洲国产精品久久一线不卡| 国产主播在线看| 欧美另类激情| 亚洲高清色综合| 污污视频网站在线免费观看| 欧美日韩国产高清| 国产精品高潮呻吟久久av野狼| 国产成人精品无码高潮| 2023国产一二三区日本精品2022| 一区二区三区av在线| 91九色porn在线资源| 欧洲视频一区二区| 性猛交╳xxx乱大交| 国产一区二区三区四区二区| 久久99国产精品久久久久久久久| 黄色片视频免费| 国产白丝精品91爽爽久久| 无码免费一区二区三区免费播放| 91精品久久久久久粉嫩| 色屁屁一区二区| 日本美女视频网站| 久久综合电影| 国产精品第1页| 黄色一级a毛片| 亚洲欧洲一区二区在线播放| 日本三级免费观看| 成人在线视频你懂的| 最近2019好看的中文字幕免费| 国产 欧美 日韩 在线| 国产精品一区二区你懂的| 日产精品高清视频免费| 欧美aa免费在线| 日韩欧美国产一区二区在线播放| 亚洲欧美va天堂人熟伦| 美女国产精品| 久久日韩精品| 黄在线观看免费网站ktv| 337p亚洲精品色噜噜| 亚洲精品视频网址| 视频一区视频二区中文| 免费中文日韩| 亚洲精品福利电影| 日韩av综合中文字幕| 精品处破女学生| 国产精品99久| a级网站在线观看| 日韩在线电影| www国产91| 日韩免费av网站| 久久久久亚洲综合| 免费在线观看毛片网站| 思热99re视热频这里只精品| 性欧美暴力猛交69hd| 日本xxxx人| 黄色成人在线播放| 亚洲天堂美女视频| 国产精品乱看| 欧美最大成人综合网| 韩国美女久久| 国产香蕉97碰碰久久人人| 天天干天天色综合| 国产视频一区不卡| 污版视频在线观看| 四虎成人精品永久免费av九九| 国产精品视频网址| 免费日本一区二区三区视频| 欧美日韩高清一区二区| 动漫性做爰视频| 国产精品一区二区久久不卡 | 日韩色视频在线观看| 欧洲猛交xxxx乱大交3| 高清av一区二区| 成人av一级片| 欧美一级本道电影免费专区| 国产欧美日韩精品在线观看 | 依依成人综合视频| 久久精品aⅴ无码中文字字幕重口| 欧美日本不卡| 精品亚洲第一| 日韩中文视频| 久久久国产成人精品| www.激情五月.com| 午夜精彩视频在线观看不卡| 在线免费观看成年人视频| 免费久久99精品国产| 色哺乳xxxxhd奶水米仓惠香| 精品三级在线观看视频| 国产成人小视频在线观看| 午夜在线观看视频| 精品国产99国产精品| 国产污视频网站| 亚洲色图制服诱惑| www国产视频| 日本美女一区二区三区| 青青草免费在线视频观看| 精品国产午夜肉伦伦影院| 日本sm极度另类视频| 日本不卡在线| 亚洲激情在线视频| 91精品国自产| 精品成人在线视频| 国产免费美女视频| 97久久精品人人做人人爽50路| 九热视频在线观看| 韩国在线视频一区| 日韩片电影在线免费观看| 天堂精品久久久久| 国产福利成人在线| 男男gaygays亚洲| 国产午夜精品一区理论片飘花| 亚洲av无码国产综合专区| 日韩欧美中文字幕在线播放| 久草视频手机在线| 国产欧美精品一区二区三区四区| 男人女人拔萝卜视频| 蜜臀a∨国产成人精品| 2018国产在线| 欧美成熟视频| 这里只有精品66| 神马电影久久| 国产亚洲精品久久飘花| 亚洲伊人精品酒店| 国产极品jizzhd欧美| heyzo在线| 欧美成人激情图片网| 国产视频网址在线| 日韩av在线播放资源| www.久久久久久| 欧美日韩国产中文| 成人小视频在线播放| 精品久久久久久中文字幕大豆网 | 五月天婷婷综合| 五月婷婷一区二区| 国产精品国产三级国产有无不卡| 成年人网站免费在线观看| 岛国av在线一区| 4438x全国最大成人| 久久成人18免费观看| 手机视频在线观看| 日韩精品一级二级| 欧美激情精品久久久久久小说| 激情欧美日韩一区| 免费看日b视频| 欧美1区2区视频| 日本黄网站色大片免费观看| 国产精品久久久久久久久妇女| 亚洲不卡一卡2卡三卡4卡5卡精品| 国产成人精品亚洲线观看| aa日韩免费精品视频一| 亚洲国产aⅴ精品一区二区| 亚洲伊人久久大香线蕉av| 婷婷成人av| 91欧美视频网站| 久久99精品久久久野外观看| 成人在线免费观看视视频| 日日夜夜亚洲| 成人激情视频在线播放| 日韩免费大片| 91久久久久久| 色悠久久久久综合先锋影音下载| 亚洲一区二区三区在线视频| gogo大尺度成人免费视频| 91九色在线观看| av动漫精品一区二区| 狠狠色综合欧美激情| 四虎5151久久欧美毛片| 麻豆传媒一区| 欧美精美视频| 亚洲欧美国产一区二区| 羞羞色午夜精品一区二区三区| 色乱码一区二区三区熟女 | 97在线免费公开视频| 久久激情网站| 女人高潮一级片| 成人综合在线观看| 久久亚洲AV成人无码国产野外 | 美女18一级毛片一品久道久久综合| 91av在线播放视频| av在线一区不卡| 亚洲综合中文字幕68页| 欧美日韩一本| 日韩在线三级| 亚洲乱码免费伦视频| 久久在线中文字幕| 免费日韩精品中文字幕视频在线| 国产精品无码一本二本三本色| 秋霞午夜av一区二区三区| 国产又粗又猛大又黄又爽| av爱爱亚洲一区| 国产精品久久久视频| 亚洲精品伦理在线| 日韩黄色在线播放| 91精品国产乱| 日韩精品系列| 久久国产精品网站| 亚洲一区站长工具| 91成人免费在线观看| 免费成人结看片| 欧美与动交zoz0z| 免费在线亚洲| 做a视频在线观看| 91久色porny| 中文字幕av播放| 色噜噜狠狠成人中文综合| 99视频免费看| 国产午夜精品视频免费不卡69堂| 影院在线观看全集免费观看| 日韩av片电影专区| 东京久久高清| 中文字幕精品—区二区日日骚| 亚洲视频1区| 中文字幕在线观看视频www| 国产性天天综合网| 精品一区免费观看| 777午夜精品免费视频| 深夜福利在线观看直播| 久久久999精品视频| 欧美最新精品| 久久精品一二三区| 欧美日韩国产探花| 超碰超碰在线观看| 久久久美女毛片| 国产做受高潮漫动| 欧美成人一区二区三区片免费| 国产高清视频在线播放| 91精品国产高清| 亚洲综合网狠久久| 91精品一区二区三区四区| 免费久久精品视频| 国产精品扒开腿做爽爽| 午夜亚洲福利老司机| 国产美女精品视频国产| 色偷偷噜噜噜亚洲男人| 亚洲高清黄色| 免费一区二区三区| 国产农村妇女精品一区二区| 亚洲一二三四五| 亚洲综合精品自拍| 精品区在线观看| 久久久精品久久久久| 亚洲狼人综合| 一区二区三区观看| 久久99精品久久久久久动态图| 日韩一级片在线免费观看| 欧美视频一区二区三区…| 秋霞视频一区二区| 97热在线精品视频在线观看| 超碰地址久久| 国模无码视频一区二区三区| 不卡的av在线播放| 国产成人精品片| 亚洲精品在线视频| 最新日韩三级| 午夜精品亚洲一区二区三区嫩草| 久久永久免费| 男人的天堂官网| 欧美日韩你懂的| 国产素人视频在线观看| 成人自拍性视频| 欧美+日本+国产+在线a∨观看| 人妻激情偷乱视频一区二区三区| 一区二区三区在线视频观看58| www.欧美国产| 性色av一区二区三区免费| 午夜精品福利影院| 91av俱乐部| 中文字幕中文字幕在线一区| 国产欧美熟妇另类久久久| 欧美国产亚洲视频| 欧美wwwwww| 青青在线视频免费| 国产精品久久久久久一区二区三区| 96亚洲精品久久久蜜桃| 欧美日本中文字幕| 日韩大胆成人| 污污的网站18| 一区二区三区四区在线免费观看 | av天堂永久资源网| 久久精品夜夜夜夜久久| 夜夜嗨aⅴ一区二区三区| 欧美黄色三级网站| 九九视频精品全部免费播放| 婷婷免费在线观看| 亚洲国产精品综合小说图片区| 五十路在线观看| 国产一区二区在线播放| 欧美午夜影院| 国精产品一区二区三区| 91麻豆精品91久久久久同性| 国产乱码在线| 亚洲 国产 日韩 综合一区| 国产福利一区在线| 中文字幕在线欧美| 欧美成人午夜激情| 婷婷激情久久| 日本在线观看视频一区| 亚洲福利视频导航| 色三级在线观看| 国产精品夜夜夜一区二区三区尤| 日本不卡一区二区三区| 美女视频黄免费| 国产一区二区三区在线观看视频 | 久久精品国产美女| 国产资源在线一区| 亚洲第一精品在线观看| 毛片精品免费在线观看| 免费看av成人| 97精品人人妻人人| 欧美二区三区91| 超碰aⅴ人人做人人爽欧美| wwwjizzjizzcom| 国产精品欧美经典| 免费在线视频一级不卡| 国产成人女人毛片视频在线|