后期经sql统计,发现数据有误,此次数据抓取所得作废
举例:
通过以下语句,进行select,得到如下结果
select area,style,count(style) from unite
group by style
order by count(style) desc;
 unite select
unite select
同样根据area对火锅(hotpot)数据进行group by,得到如下结果
 hotpot select
hotpot select
unite 750条数据中三元桥有106家火锅,但hotpot 750条数据中三里屯有698家火锅,三元桥无火锅,说明数据量选取范围太小,具有偶然性,需重新抓取
第一步:通过爬虫软件爬取大众点评美食页面店家数据,由于点评只显示50页,每页25条,共得到数据750条
爬取页面地址:https://www.dianping.com/search/category/2/10
补充:将整体数据爬取下来后,发现以下几个菜系数据较多,因此单独爬取了单独菜系的数据:火锅、日本菜、川菜、西餐、烧烤、北京菜、韩国料理
 一级页面
一级页面
一级页面字段有限,我对二级页面进行了爬取,共选取了以下几个字段
 二级页面
二级页面
其中红框所示字段为选取标签内容,箭头所指星标则选取整个标签内容,以便获取鼠标悬停时显示内容
 源代码
源代码
 鼠标悬停星级
鼠标悬停星级
第二步:进行数据爬取后,得到如下数据
 元数据字段
元数据字段
对数据进行处理,并重新命名
评论数、人均花费—数字
 评论数
评论数
 人均花费
人均花费
点评分数—数字
 点评分数
点评分数
商户星级—从代码中提取,并将“””替换为空
 商户星级
商户星级
字段重新命名为
 字段命名
字段命名
第三步:制作行政区(region)与商圈(area)对应表格
根据大众点评上行政区商圈划分,制作表格
 商圈-行政区-大众点评
商圈-行政区-大众点评
 商圈-行政区-表格
商圈-行政区-表格
第四步:将数据导入mysql数据库
首先,建立数据库及表
 建表界面
建表界面
 建表SQL
建表SQL
由于各表结构相同,可直接在SQL语句页面写添加语句
CREATE TABLE `dazhongdianping`.`unite` (
  `idunite` INT NOT NULL,
  `area` VARCHAR(45) NOT NULL,
  `style` VARCHAR(45) NOT NULL,
  `restaurant` VARCHAR(45) NOT NULL,
  `comments` INT NULL,
  `percapita` INT NULL,
  `taste` DECIMAL(2,1) NULL,
  `environment` DECIMAL(2,1) NULL,
  `service` DECIMAL(2,1) NULL,
  `address` VARCHAR(100) NULL,
  `level` VARCHAR(45) NULL,
  `type` VARCHAR(45) NULL,
  PRIMARY KEY (`idunite`));
通过可视化页面导入数据,导入成功
 导入成功
导入成功
至此,数据准备工作完成,后续会通过SQL进行分析














网友评论