美团商品各项数据(1.爬取)
美团商品各项数据(1.爬取)
程序
import requests
import time
import json
import pandas as pd
这里只需要这四个库,pandas主要作保存数据用
headers={#这里填写请求头,主要为cookie,User-agent
}
rows = []
n = 0
#num_list = ['单1一', '2二双', '3三', '4四', '5五', '6六', '7七', '8八', '9九', '10十']
for i in range(100):url = 'https://cd.meituan.com/meishi/c17/pn'+str(i+1)+'/'res = requests.get(url, headers=headers)html = res.content.decode(res.apparent_encoding)for i in range(len(html)):if html[i:i+8] == 'poiInfos':for j in range(i+8, len(html)):if html[j:j+9] == 'comHeader':html = html[i+10:j-3]result = json.loads(html) #json库解析htmlfor i in result:row = []#row.append(i['title'])#row.append(str(i['poiId']))row.append(str(i['avgScore']))row.append(str(i['allCommentNum']))row.append(str(int(i['avgScore']*i['allCommentNum'])))row.append(str(i['avgPrice']))for key, value in i.items():if key == 'address':address = ''for j in value:if j != '区' and j != '市':address += jelse:row.append(address+j)breakif key == 'dealList' and i['dealList'] != None:soldCounts_total = 0#soldCounts_total_num = 0for j in value:if '券' not in j['title']:#num = 0soldCounts_total += j['soldCounts']#for i in range(len(j['title'])):#if j['title'][i] == '人' or '位' or '个' or '份':#for x in range(10):#if j['title'][i-1] in num_list[x] and num == 0:#row.append([j['price'], j['soldCounts']])#soldCounts_total_num += j['soldCounts']*(#x+1)# print(x+1, j['soldCounts'])#num += 1if soldCounts_total != 0:row.append(str(soldCounts_total))#row.append(str(soldCounts_total_num))# time.sleep(0.5)#urls = 'https://www.meituan.com/meishi/'+row[1]+'/'#ress = requests.get(urls, headers=headers)#htmls = ress.content.decode(ress.apparent_encoding)# for i in range(len(htmls)):# if htmls[i:i+10] == 'extraInfos':# for j in range(i+10, len(htmls)):# if htmls[j:j+15] == 'hasFoodSafeInfo':#htmls = htmls[i+12:j-2]#results = json.loads(htmls)# if len(results) == 0:# row.append(0)# row.append(0)# elif len(results) == 1:# row.append(1)# row.append(0)# else:# row.append(1)# row.append(1)if len(row) == 6 and row[2] != 0 and row[3] != 0 and row[-1] != 0:rows.append(row)time.sleep(0.5)n += 1print('已经完成{}'.format(n))# print(html)
# 写入数据
output = pd.DataFrame(rows)
#print(output.iloc[:, 6])
output.to_csv('meituan huoguo.csv')
代码简单易懂,此处不再说明,只需要对照解析的html即可理解,加注释的部分供参考,可自行探索。此后将尝试爬取店铺的评论以及对数据的分析。
美团商品各项数据(1.爬取)相关推荐
- python爬取网页json数据_python爬取json数据库
手把手教你使用Python抓取QQ音乐数据(第一弹) [一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. [二. ...
- Python—爬虫之Network,XHR,json 带参数请求数据(爬取歌单、歌词)
Python-爬虫之Network,XHR,json & 带参数请求数据(爬取歌单.歌词) Network是什么,能做什么 XHR要如何请求 json格式的转换 带参数请求数据 修改请求头,便 ...
- 生成osm文件_超酷城市肌理!地理数据信息爬取方法大全(B篇)DEM+POI+OSM
WENWEN:这一弹是对第一弹的补充和深化讲解,上一弹请点击常用的地理数据信息爬取方法大全(前期场地信息获取第一弹),关于DEM获取地形地理空间数据云提交任务一直在排队的问题,这个应该是官网的问题,不 ...
- python爬取公交车站数据_Python爬虫实例_城市公交网络站点数据的爬取方法
爬取的站点:http://beijing.8684.cn/ (1)环境配置,直接上代码: # -*- coding: utf-8 -*- import requests ##导入requests fr ...
- Python实现对主要城市及其周边地区天气数据的爬取
python爬虫学习爬虫(爬取指定网站数据) Python实现对主要城市及其周边地区天气数据的爬取,关键步骤已经做了注释此版本仅是初学者的学习版,不喜勿喷 #coding: utf-8 import ...
- python 北上资金_python爬虫技术:北向资金数据自动爬取!
好久不见!今天我们继续python的话题啦.python现在势头凶得很,没事刷抖音.刷朋友圈.看公众号,弹出的广告总少不了python."python带你发家致富,财富自由!"广告 ...
- scrapy框架之全站数据的爬取
全站数据的爬取有俩种方式: 1.基于spider的全站数据爬取:需要自己进行分页操作,并进行手动发送请求 2.基于CrawlSpider ,今天主要讲解基于CrawlSpider 的爬取方式 Craw ...
- php 爬取股票数据库,【实例】--股票数据定向爬取
从股票列表网页获取股票代码 根据股票代码去股票详情页面获取股票详细信息 1. 股票列表页面 凤凰网财经-股票信息 http://app.finance.ifeng.com/list/stock.php ...
- 如何爬一个网站的数据-免费爬取网站的任意数据软件
如何爬一个网站的数据?爬取网络数据大家称之为网络爬行 收集页面以创建索引或集合.另一方面,网络抓取下载页面以提取一组特定的数据用于分析目的,例如,产品详细信息.定价信息.SEO 数据或任何其他数据集. ...
最新文章
- python建站与java建站有何不同_详解模板建站和定制建站的不同之处
- SpringBoot基础系列-SpringCache使用
- 手动创建DataTable
- unipapp 解决无法编译sass_Sass教程一:Sass概况
- OpenCV离散傅立叶变换
- Java的原始字符串文字
- python中有数组吗_python里面有数组吗
- git 常用操作,撤销修改
- 妲己机器人怎么升级固件_OnRobot新增爱普生川崎机器人套件、HEX固件升级
- Windows Terminal Preview 1910 发布
- 再谈MySQL全库备份
- Yocto系列讲解[理论篇] 45 - bb文件中函数实操演示(3)继承自己的class
- 北京内推 | 微软亚洲研究院智能多媒体组招聘CV/NLU/RL方向算法实习生
- 小白轻松使用axis2构建webservice
- 帝国cms用自定义反馈做在线报名等系统
- 不再追求安全感,你才能走向成熟。
- 国家企业信息公示贵州 滑块打码验证
- 职称计算机ppt教程,职称计算机考试WPS教程:幻灯片格式的设置
- 华为android系统登录到网络怎么解决,总是提示“登陆到WLAN网络”
- wlanFineCFOEstimate 详解