电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python爬蟲實例——爬取美團美食數據

瀏覽:168日期:2022-07-17 13:01:01

1.分析美團美食網頁的url參數構成

1)搜索要點

美團美食,地址:北京,搜索關鍵詞:火鍋

2)爬取的url

https://bj.meituan.com/s/%E7%81%AB%E9%94%85/

3)說明

url會有自動編碼中文功能。所以火鍋二字指的就是這一串我們不認識的代碼%E7%81%AB%E9%94%85。

通過關鍵詞城市的url構造,解析當前url中的bj=北京,/s/后面跟搜索關鍵詞。

這樣我們就可以了解到當前url的構造。

2.分析頁面數據來源(F12開發者工具)

開啟F12開發者工具,并且刷新當前頁面:可以看到切換到第二頁時候,我們的url沒有變化,網站也沒有自動進行刷新跳轉操作。(web中ajax技術就是在保證頁面不刷新,url不變化情況下進行數據加載的技術)

Python爬蟲實例——爬取美團美食數據

此時我們需要在開發者工具中,找到xhr里面對應當前數據的響應文件。

Python爬蟲實例——爬取美團美食數據

分析到這里可以得知:我們的數據是以json格式交互。分析第二頁的json文件請求地址與第三頁json文件的請求地址。

第二頁:https://apimobile.meituan.com/group/v4/poi/pcsearch/1?uuid=xxx&userid=-1&limit=32&offset=32&cateId=-1&q=%E7%81%AB%E9%94%85

第三頁:https://apimobile.meituan.com/group/v4/poi/pcsearch/1?uuid=xxx&userid=-1&limit=32&offset=64&cateId=-1&q=%E7%81%AB%E9%94%85

對比發現:offse參數每次翻頁增加32,并且limit參數是一次請求的數據量,offse是數據請求的開始元素,q是搜索關鍵詞poi/pcsearch/1?其中的1是北京城市的id編號。

3.構造請求抓取美團美食數據

接下來直接構造請求,循環訪問每一頁的數據,最終代碼如下。

import requestsimport redef start(): for w in range(0, 1600, 32): #頁碼根據實際情況x32即可,我這里是設置50頁為上限,為了避免設置頁碼過高或者數據過少情況,定義最大上限為1600-也就是50頁,使用try-except來檢測時候異常,異常跳過該頁,一般作為無數據跳過該頁處理 try: # 注意uuid后面參數空余將uuid后xxx替換為自己的uuid參數 url = ’https://apimobile.meituan.com/group/v4/poi/pcsearch/1?uuid=xxx&userid=-1&limit=32&offset=’+str(w)+’&cateId=-1&q=%E7%81%AB%E9%94%85’ #headers的數據可以在F12開發者工具下面的requests_headers中查看,需要實現選擇如下headers信息 #必要情況 請求頻繁 建議增加cookie參數在headers內 headers = {’Accept’: ’*/*’,’Accept-Encoding’: ’gzip, deflate, br’,’Accept-Language’: ’zh-CN,zh;q=0.9’,’Connection’: ’keep-alive’,’User-Agent’: ’Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3741.400 QQBrowser/10.5.3863.400’,’Host’: ’apimobile.meituan.com’,’Origin’: ’https://bj.meituan.com’,’Referer’: ’https://bj.meituan.com/s/%E7%81%AB%E9%94%85/’ } response = requests.get(url, headers=headers) #正則獲取當前響應內容中的數據,因json方法無法針對店鋪特有的title鍵值進行獲取沒所以采用正則 titles = re.findall(’','title':'(.*?)','address':'’, response.text) addresses = re.findall(’,'address':'(.*?)',’, response.text) avgprices = re.findall(’,'avgprice':(.*?),’, response.text) avgscores = re.findall(’,'avgscore':(.*?),’,response.text) comments = re.findall(’,'comments':(.*?),’,response.text) #輸出當前返回數據的長度 是否為32 print(len(titles), len(addresses), len(avgprices), len(avgscores), len(comments)) for o in range(len(titles)): #循環遍歷每一個值 寫入文件中 title = titles[o] address = addresses[o] avgprice = avgprices[o] avgscore = avgscores[o] comment = comments[o] #寫入本地文件 file_data(title, address, avgprice, avgscore, comment)#文件寫入方法def file_data(title, address, avgprice, avgscore, comment): data = {’店鋪名稱’: title,’店鋪地址’: address,’平均消費價格’: avgprice,’店鋪評分’: avgscore,’評價人數’: comment } with open(’美團美食.txt’, ’a’, encoding=’utf-8’)as fb: fb.write(json.dumps(data, ensure_ascii=False) + ’n’) #ensure_ascii=False必須加因為json.dumps方法不關閉轉碼會導致出現亂碼情況if __name__ == ’__main__’: start()

運行結果如下:

Python爬蟲實例——爬取美團美食數據

本地文件:

Python爬蟲實例——爬取美團美食數據

4.總結

根據搜索詞變化,城市變化,可以改變url中指定的參數來實現。同時也要記得變更headers中的指定參數,方法簡單,多加練習即可熟悉ajax類型的數據抓取。

以上就是Python爬蟲實例——爬取美團美食數據的詳細內容,更多關于Python爬蟲爬取美食數據的資料請關注好吧啦網其它相關文章!

標簽: 美團 Python
相關文章:
主站蜘蛛池模板: 万濠影像仪(万濠投影仪)百科-苏州林泽仪器 | 泰安办公家具-泰安派格办公用品有限公司| 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 | 智能气瓶柜(大型气瓶储存柜)百科 | cnc精密加工_数控机械加工_非标平键定制生产厂家_扬州沃佳机械有限公司 | 东亚液氮罐-液氮生物容器-乐山市东亚机电工贸有限公司 | 西安烟道厂家_排气道厂家_包立管厂家「陕西西安」推荐西安天宇烟道 | 德国EA可编程直流电源_电子负载,中国台湾固纬直流电源_交流电源-苏州展文电子科技有限公司 | 砂磨机_立式纳米砂磨机_实验室砂磨机-广州儒佳化工设备厂家 | 代写标书-专业代做标书-商业计划书代写「深圳卓越创兴公司」 | 丙烷/液氧/液氮气化器,丙烷/液氧/液氮汽化器-无锡舍勒能源科技有限公司 | 立式硫化罐-劳保用品硫化罐-厂家直销-山东鑫泰鑫硫化罐厂家 | IWIS链条代理-ALPS耦合透镜-硅烷预处理剂-上海顶楚电子有限公司 lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 伊卡洛斯软装首页-电动窗帘,别墅窗帘,定制窗帘,江浙沪1000+别墅窗帘案例 | 中国产业发展研究网 - 提供行业研究报告 可行性研究报告 投资咨询 市场调研服务 | 直流大电流电源,燃料电池检漏设备-上海政飞 | 煤矿支护网片_矿用勾花菱形网_缝管式_管缝式锚杆-邯郸市永年区志涛工矿配件有限公司 | 外贸网站建设-外贸网站设计制作开发公司-外贸独立站建设【企术】 | 陕西视频监控,智能安防监控,安防系统-西安鑫安5A安防工程公司 | 传爱自考网_传爱自学考试网 | 工业废水处理|污水处理厂|废水治理设备工程技术公司-苏州瑞美迪 今日娱乐圈——影视剧集_八卦娱乐_明星八卦_最新娱乐八卦新闻 | 体视显微镜_荧光生物显微镜_显微镜报价-微仪光电生命科学显微镜有限公司 | 烘箱-工业烘箱-工业电炉-实验室干燥箱 - 苏州华洁烘箱制造有限公司 | PO膜_灌浆膜及地膜供应厂家 - 青州市鲁谊塑料厂| 净化车间装修_合肥厂房无尘室设计_合肥工厂洁净工程装修公司-安徽盛世和居装饰 | 翅片管换热器「型号全」_厂家-淄博鑫科环保 | 水稻烘干机,小麦烘干机,大豆烘干机,玉米烘干机,粮食烘干机_巩义市锦华粮食烘干机械制造有限公司 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 航空障碍灯_高中低光强航空障碍灯_民航许可认证航空警示灯厂家-东莞市天翔航天科技有限公司 | 传递窗_超净|洁净工作台_高效过滤器-传递窗厂家广州梓净公司 | 谷歌关键词优化-外贸网站优化-Google SEO小语种推广-思亿欧外贸快车 | 变位机,焊接变位机,焊接变位器,小型变位机,小型焊接变位机-济南上弘机电设备有限公司 | 除尘布袋_液体过滤袋_针刺毡滤料-杭州辉龙过滤技术有限公司 | 合肥升降机-合肥升降货梯-安徽升降平台「厂家直销」-安徽鼎升自动化科技有限公司 | _网名词典_网名大全_qq网名_情侣网名_个性网名 | 凝胶成像系统(wb成像系统)百科-上海嘉鹏| 钛板_钛管_钛棒_钛盘管-无锡市盛钛科技有限公司 | 矿用履带式平板车|探水钻机|气动架柱式钻机|架柱式液压回转钻机|履带式钻机-启睿探水钻机厂家 | 真丝围巾|真丝丝巾|羊绒围巾|围巾品牌|浙江越缇围巾厂家定制 | 数控车床-立式加工中心-多功能机床-小型车床-山东临沂金星机床有限公司 | 铸铝门厂家,别墅大门庭院大门,别墅铸铝门铜门[十大品牌厂家]军强门业 | 氨水-液氨-工业氨水-氨水生产厂家-辽宁顺程化工 |