絮叨两句:
博主是一名软件工程系的在校生,利用博客记录自己所学的知识,也希望能帮助到正在学习的同学们
人的一生中会遇到各种各样的困难和折磨,逃避是解决不了问题的,唯有以乐观的精神去迎接生活的挑战
少年易老学难成,一寸光阴不可轻。
最喜欢的一句话:今日事,今日毕
文章目录
从Python爬虫到Spark预处理数据的真实需求[一]
从Python爬虫到Spark预处理数据的真实需求[二]
从Python爬虫到Spark预处理数据的真实需求[三]
从Python爬虫到Spark预处理数据的真实需求[四]
从Python爬虫到Spark预处理数据的真实需求[五]
前言
这一章主要是阐述一下需求以及所要用到的技术
提示:以下是本篇文章正文内容,下面案例可供参考
需求:获取京东汽车用品的数据
分类:
机油: https://list.jd.com/list.html?cat=6728,6742,11849
添加剂: https://search.jd.com/search?keyword=%E6%B7%BB%E5%8A%A0%E5%89%82&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&wq=%E6%B7%BB%E5%8A%A0%E5%89%82&stock=1&cid3=11850#J_searchWrap
轮胎: https://search.jd.com/Search?keyword=%E8%BD%AE%E8%83%8E&enc=utf-8&wq=&pvid=b2160a1bc78b4897827700e1dba8e242
刹车片: https://coll.jd.com/list.html?sub=23867
原厂件: https://coll.jd.com/list.html?sub=42052
火花塞: https://list.jd.com/list.html?cat=6728,6742,6767
机油: https://list.jd.com/list.html?cat=6728,6742,11849
添加剂: https://search.jd.com/search?keyword=%E6%B7%BB%E5%8A%A0%E5%89%82&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&wq=%E6%B7%BB%E5%8A%A0%E5%89%82&stock=1&cid3=11850#J_searchWrap
轮胎: https://search.jd.com/Search?keyword=%E8%BD%AE%E8%83%8E&enc=utf-8&wq=&pvid=b2160a1bc78b4897827700e1dba8e242
刹车片: https://coll.jd.com/list.html?sub=23867
原厂件: https://coll.jd.com/list.html?sub=42052
火花塞: https://list.jd.com/list.html?cat=6728,6742,6767
如图:
要求:
1. 将数据每个分类中的数据全部获取出来
2. 存入到MySQL数据库中
3. 使用SparkSql读取MySQL数据对数据进行预处理
1. 将数据每个分类中的数据全部获取出来
2. 存入到MySQL数据库中
3. 使用SparkSql读取MySQL数据对数据进行预处理
爬虫所使用到的技术
1. BeautifulSoup:
用于解析网页
2. selenium: 用于自动化操作
Selenium安装教程
3. fake_useragent: 用于随机获取UserAgent
4. multiprocessing: 使用多进程
5. pymysql: 连接数据库
6. time: 时间操作
7. requests: 用于请求地址
8. random: 随机数
2. selenium: 用于自动化操作
Selenium安装教程
3. fake_useragent: 用于随机获取UserAgent
4. multiprocessing: 使用多进程
5. pymysql: 连接数据库
6. time: 时间操作
7. requests: 用于请求地址
8. random: 随机数
对数据的整合使用到的技术
1. SparkSql:
用于解析网页
Spark SQL:基本介绍(特点)
SparkSql:数据抽象(DataFrame与DataSet详解)
Spark SQL:从入门到精通(一)[SparkSQL初体验]
Spark SQL:从入门到精通(二)[IDEA开发Spark SQL]
Spark SQL:从入门到精通(三)[多数据源交互]
Spark SQL:从入门到精通(四)[ 自定义函数]UDF_UDAF
Spark SQL:从入门到精通(五)[开窗函数]
Spark SQL:从入门到精通(六)[ Spark-On-Hive]
Spark SQL:基本介绍(特点)
SparkSql:数据抽象(DataFrame与DataSet详解)
Spark SQL:从入门到精通(一)[SparkSQL初体验]
Spark SQL:从入门到精通(二)[IDEA开发Spark SQL]
Spark SQL:从入门到精通(三)[多数据源交互]
Spark SQL:从入门到精通(四)[ 自定义函数]UDF_UDAF
Spark SQL:从入门到精通(五)[开窗函数]
Spark SQL:从入门到精通(六)[ Spark-On-Hive]
提供下表的创建的语句
CREATE TABLE `xxuan_car_jd_ycj_product` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`skuid` varchar(100) DEFAULT NULL COMMENT '商品ID\n',
`name` varchar(100) DEFAULT NULL COMMENT '商品名称',
`brand` varchar(100) DEFAULT NULL COMMENT '商品品牌\n',
`freezing` varchar(100) DEFAULT NULL COMMENT '冰点',
`url` varchar(100) DEFAULT NULL COMMENT '商品链接\n',
`originplace` varchar(100) DEFAULT NULL COMMENT '商品产地',
`netweight` varchar(100) DEFAULT NULL COMMENT '毛重',
`price` varchar(100) DEFAULT NULL COMMENT '商品价格\n',
`commodity_Name` varchar(100) DEFAULT NULL COMMENT '商品标题名称',
`image` varchar(100) DEFAULT NULL COMMENT '商品图片\n',
`category` varchar(100) DEFAULT NULL COMMENT '产品类别',
`package` varchar(100) DEFAULT NULL COMMENT '包装规格',
`boiling` varchar(100) DEFAULT NULL COMMENT '干湿沸点',
`sales` varchar(100) DEFAULT NULL COMMENT '销售规格',
`installation` varchar(100) DEFAULT NULL COMMENT '安装位置',
`transmission` varchar(100) DEFAULT NULL COMMENT '变速箱类型',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1025 DEFAULT CHARSET=utf8;
CREATE TABLE `xxuan_car_jd_tjj_product` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`skuid` varchar(100) DEFAULT NULL COMMENT '商品ID\n',
`name` varchar(100) DEFAULT NULL COMMENT '商品名称',
`brand` varchar(100) DEFAULT NULL COMMENT '商品品牌',
`price` varchar(100) DEFAULT NULL COMMENT '商品价格',
`url` varchar(100) DEFAULT NULL COMMENT '商品链接',
`commodity_Name` varchar(100) DEFAULT NULL COMMENT '商品标题名称',
`image` varchar(100) DEFAULT NULL COMMENT '商品图片\n',
`Additivetype` varchar(100) DEFAULT NULL COMMENT '添加剂类型',
`TypesOfAdditives` varchar(100) DEFAULT NULL COMMENT '添加剂种类',
`NetContent` varchar(100) DEFAULT NULL COMMENT '净含量',
`ArticleNumber` varchar(100) DEFAULT NULL COMMENT '货号',
`GrossWeight` varchar(100) DEFAULT NULL COMMENT '商品毛重',
`CommodityOrigin` varchar(100) DEFAULT NULL COMMENT '商品产地',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=20959 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
CREATE TABLE `xxuan_car_jd_scp_product` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`skuid` varchar(100) DEFAULT NULL COMMENT '商品id',
`name` varchar(100) DEFAULT NULL COMMENT '商品名称',
`brand` varchar(100) DEFAULT NULL COMMENT '商品品牌\n',
`price` varchar(100) DEFAULT NULL COMMENT '商品价格',
`url` varchar(1000) DEFAULT NULL COMMENT '商品链接',
`commodity_Name` varchar(100) DEFAULT NULL COMMENT '商品标题名称',
`image` varchar(100) DEFAULT NULL COMMENT '商品图片\n',
`ArticleNumber` varchar(100) DEFAULT NULL COMMENT '货号',
`boiling` varchar(100) DEFAULT NULL COMMENT '干湿沸点',
`package` varchar(100) DEFAULT NULL COMMENT '包装规格',
`GrossWeight` varchar(100) DEFAULT NULL COMMENT '商品毛重',
`CommodityOrigin` varchar(100) DEFAULT NULL COMMENT 'CommodityOrigin',
`process` varchar(100) DEFAULT NULL COMMENT '产品工艺',
`Installation` varchar(100) DEFAULT NULL COMMENT '安装位置',
`type` varchar(100) DEFAULT NULL COMMENT '类别',
`texture` varchar(100) DEFAULT NULL COMMENT '材质',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3288 DEFAULT CHARSET=utf8;
CREATE TABLE `xxuan_car_jd_mobil_product` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '商品ID\n',
`skuid` varchar(100) NOT NULL COMMENT '商品ID',
`name` varchar(100) DEFAULT NULL COMMENT '机油名称',
`brand` varchar(100) DEFAULT NULL COMMENT '机油品牌\n',
`price` varchar(100) NOT NULL COMMENT '商品价格',
`type` varchar(200) DEFAULT NULL COMMENT '机油种类',
`url` varchar(100) NOT NULL COMMENT '商品链接',
`originplace` varchar(200) DEFAULT NULL COMMENT '机油产地',
`netweight` varchar(200) DEFAULT NULL COMMENT '毛重',
`commodity_Name` varchar(200) DEFAULT NULL COMMENT '商品标题名称',
`image` varchar(200) DEFAULT NULL COMMENT '图片地址',
`viscosity` varchar(200) DEFAULT NULL COMMENT '粘度',
`volume` varchar(200) DEFAULT NULL COMMENT '容量',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=69871 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
CREATE TABLE `xxuan_car_jd_lt_product` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`skuid` varchar(100) DEFAULT NULL,
`name` varchar(100) DEFAULT NULL,
`brand` varchar(100) DEFAULT NULL,
`url` varchar(100) DEFAULT NULL,
`price` varchar(100) DEFAULT NULL,
`commodity_Name` varchar(100) DEFAULT NULL,
`image` varchar(100) DEFAULT NULL,
`netweight` varchar(100) DEFAULT NULL,
`originplace` varchar(100) DEFAULT NULL,
`size` varchar(100) DEFAULT NULL,
`width` varchar(100) DEFAULT NULL,
`number` varchar(100) DEFAULT NULL,
`performance` varchar(100) DEFAULT NULL,
`Flattening` varchar(100) DEFAULT NULL,
`characteristics` varchar(100) DEFAULT NULL,
`type` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=154715 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
//HK 这两张表用来存储请求不成功的url 到最后可以自己在进行请求
CREATE TABLE `xxuan_car_jd_hk_mobil_product` (
`href` varchar(100) DEFAULT NULL,
`branName` varchar(100) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
CREATE TABLE `xxuan_car_jd_lt_hk_product` (
`href` varchar(100) DEFAULT NULL,
`name` varchar(100) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
CREATE TABLE `xxuan_car_jd_hhs_product` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`skuid` varchar(1000) DEFAULT NULL COMMENT '商品ID',
`name` varchar(1000) DEFAULT NULL COMMENT '商品名称\n',
`brand` varchar(1000) DEFAULT NULL COMMENT '商品品牌\n',
`price` varchar(1000) DEFAULT NULL COMMENT '商品价格',
`url` varchar(1000) DEFAULT NULL COMMENT '商品链接',
`commodity_Name` varchar(1000) DEFAULT NULL COMMENT '商品标题名称',
`image` varchar(1000) DEFAULT NULL COMMENT '商品图片\n',
`sales` varchar(1000) DEFAULT NULL COMMENT '销售规格',
`material` varchar(1000) DEFAULT NULL COMMENT '产品材质',
`type` varchar(1000) DEFAULT NULL COMMENT '产品类型',
`ArticleNumbera` varchar(1000) DEFAULT NULL COMMENT '货号',
`GrossWeight` varchar(1000) DEFAULT NULL COMMENT 'GrossWeight',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5668 DEFAULT CHARSET=utf8;