爬虫小项目-京东月饼销量分析

月饼销量数据分析

开发环境

  1. Python3.7
  2. Pycharm
  3. selenium
  4. csv

开发工具

  1. selenium工具的使用
  2. 结构化的数据解析
  3. csv数据保存(兼容性)

程序流程

import csv
import time

from selenium import webdriver


'''
下面的代码,都是用户行为去决定的,
你平常怎么浏览, 你的代码逻辑,就应该怎么编写,

'''

def get_product(key):
	"""
	搜索商品的功能
	:send_key   关键字, 比如(月饼)
	"""

	driver.find_element_by_css_selector('#key').send_keys(key)
	driver.find_element_by_css_selector('.button').click()
	# 进入页面(需要加载《耗时》)
	driver.implicitly_wait(10)  # 隐式等待(弹性等待)----》死等
	driver.maximize_window()  # 窗口最大化,


	# 懒加载-- 根据鼠标滚动,

def drop_down():
	"""
	模拟人去滚动鼠标, 加载所有数据
	:return:
	"""
	for x in range(1,11,2):
		time.sleep(0.5)
		# 分为5个部分
		j = x/10
		js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % j
		driver.execute_script(js)

def parse_product():
	"""
	解析商品数据
	:return:
	"""

	# 多个标签用find_elements_by_css_selector()
	lis = driver.find_elements_by_css_selector('.gl-item')
	try:
		for li in lis:
			name = li.find_element_by_css_selector('div.p-name a em').text  # 商品名字
			price = li.find_element_by_css_selector('div.p-price strong i').text + '元' # 商品价格
			deal = li.find_element_by_css_selector('div.p-commit strong a').text  # 商品评价
			title = li.find_element_by_css_selector('span.J_im_icon  a').text  # 商铺名字
			print("%s\n %s\n %s\n %s\n" % (name,price,deal,title))

            # 写入data.csv文件
			with open("data.csv", "a", encoding="utf-8", newline='') as f:
				csv_write = csv.writer(f)
				csv_write.writerow([name,price,deal,title])
	except Exception as e:
		print(e)



def get_next():
	"""找到下一页,点击"""
	driver.find_element_by_css_selector('#J_bottomPage > span.p-num > a.pn-next').click()
	driver.implicitly_wait(10)


if __name__ == '__main__':
    """程序入口"""
	keyWords = input("请输入你想要的商品。。")
	
	driver = webdriver.Chrome() # 创建一个浏览器对象
	driver.get("https://www.jd.com/")
	
	get_product(keyWords)
	# 取3页数据
	for i in range(3):
		drop_down()
		parse_product()
		get_next()

通过数据可视化文件,形成点状图,商家即可分析数据

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值