Advertisement

Python爬取京东双十一商品可视化价格曲线示例代码

阅读量:

文章目录

  • 引言
  • 从京东平台获取商品价格
  • 总结与回顾
      • 全面掌握Python编程所需的知识体系
          • 一、基础阶段的学习资源推荐
      • 二、精选教材与参考书籍
      • 三、核心库集合及实战项目
      • 四、完善编程能力的综合学习路径
      • ①核心库集合——掌握Python的基础功能模块
      • ②实战项目与案例分析——提升实际应用能力
      • ③游戏开发中的代码示例——深入理解算法实现细节
      • 五、求职准备材料库
      • 六、实习与兼职机会介绍

前言

每年一度的双十一已悄然结束。无论在双十一前还是在双十一后,“各色优惠券”均有不同程度的价格下调。像我这样经历过无数次双11的老手都曾深有体会——单次购物金额仅需2块五。不仅会浪费大量时间,“还可能得不到实质性的优惠”。这种“明降暗升”的现象已经成为电商行业的既定规则。破解这一现象其实并不困难——具体来说,“利用Python语言开发一个自动监控商品价格的小程序就非常简单。”

思路第一步是获取商品价格并将其录入Python自带的 SQLite 数据库。随后每天定时采集商品价格数据,并借助 pyecharts 模块生成价格折线图以直观呈现低价优势。

在这里插入图片描述

抓取京东价格

在浏览商品详情页时,在标签上标注有 p.3 标签的位置即可定位到所需链接项,并在右侧的预览面板中可查看当前商品价格信息

在这里插入图片描述

defget_jd_price(skuId):

复制代码
    sku_detail_url = 'http://item.jd.com/{}.html'
      sku_price_url = 'https://p.3.cn/prices/get?type=1&skuid=J_{}'
    
      r = requests.get(sku_detail_url.format(skuId)).content
    
      soup = BeautifulSoup(r, 'html.parser', from_encoding='utf-8')
      sku_name_div = soup.find('div', class_="sku-name")
    
      if not sku_name_div:
    print('您输入的商品ID有误!')
    return
      else:
    sku_name = sku_name_div.text.strip()
    
      r = requests.get(sku_price_url.format(skuId))
      price = json.loads(r.text)[0]['p']
    
      data = {
    'sku_id': skuId,
    'sku_name': sku_name,
    'price': price
      }
      return data

将捕获的价格存储至 SQLite 数据库,并通过 PyCharm 的 Database 功能生成一个 SQLite 数据库实例。

在这里插入图片描述

最终将数据插入到数据库

复制代码
    # 新增
    def insert(data):
      conn = sqlite3.connect('price.db')
      c = conn.cursor()
      sql = 'INSERT INTO price (sku_id,sku_name,price) VALUES ("{}", "{}", "{}")'.format(data.get("sku_id"), data.get("sku_name"), data.get('price') )
      c.execute(sql)
      conn.commit()
      conn.close()
    
    # 查询
    def select(sku_id):
      conn = sqlite3.connect('price.db')
      c = conn.cursor()
      sql = 'select sku_id, sku_name, price, time from price where sku_id = "{}" order by time asc'.format(sku_id)
      cursor = c.execute(sql)
    
      datas = []
      for row in cursor:
    data = {
      'sku_id': row[0],
      'sku_name': row[1],
      'price': row[2],
      'time': row[3]
    }
    datas.append(data)
      conn.close()
    
      return datas

示例结果

在这里插入图片描述

计划任务

使用轻量级的 schedule 模块每天早上 10 点抓取京东价格这一步骤

安装 schedule 模块

复制代码
    pip install schedule
    def run_price_job(skuId):
    
      # 使用不占主线程的方式启动 计划任务
      def run_continuously(interval=1):
    cease_continuous_run = threading.Event()
    
    class ScheduleThread(threading.Thread):
      @classmethod
      def run(cls):
        while not cease_continuous_run.is_set():
          schedule.run_pending()
          time.sleep(interval)
    
    continuous_thread = ScheduleThread()
    continuous_thread.start()
    return cease_continuous_run
      
      # 每天10点运行,get_jd_price:任务方法,skuId:任务方法的参数
      schedule.every().day.at("10:00").do(get_jd_price, skuId=skuId)
      run_continuously()

查看历史价格

使用 pytharts 模块绘制折线图,直观的查看每一天的价格差异

复制代码
    datas = select(skuId)
    
    def line(datas):
      x_data = []
      y_data = []
      for data in datas:
    x_data.append(data.get('time'))
    y_data.append(data.get('price'))
    
      (
    Line()
    .add_xaxis(x_data)
    .add_yaxis(datas[0].get('sku_name'), y_data, is_connect_nones=True)
    .render("商品历史价格.html")
      )
在这里插入图片描述

总结

本文采集了京东商城的商品价格数据;同样编写一个脚本可以实现从淘宝采集商品价格。利用Python编程技术解决日常生活中的一些小问题,并且能够帮助大家节省开支。

在这里插入图片描述

关于Python技术储备

掌握Python无论是求职还是创业都能带来不错的发展机会。但是掌握Python仅仅依靠自学还不够高效;建议制定系统的学习计划。最后我整理并附上一套全面的Python学习资料希望能为想要深入学习Python的朋友提供便利。

👉立即获取《Python入门资料、实践代码库及安装指南》免费领取!(安全链接,放心点击

一、Python所有方向的学习路线

对Python各个领域中的技术要点进行系统性地梳理,并将其整合成一个全面的知识点汇总文档;其主要用途在于通过这些知识点的学习资源链接,你可以方便地找到所需的学习材料。

在这里插入图片描述
二、Python基础学习视频

② 路线对应学习视频

有很多专门针对零基础学习者的入门级学习资源可选,在掌握了这些课程后,你完全能够自如地开始学习Python编程

在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!

在这里插入图片描述

因篇幅有限,仅展示部分资料

三、精品Python学习书籍

当我在掌握了一定的基础知识并具备了独立思考能力之后

在这里插入图片描述
四、Python工具包+项目源码合集
①Python工具包

掌握Python编程所需的常用开发工具一应俱全

熟悉如何安装各种开发工具的步骤,请放心操作

在这里插入图片描述
②Python实战案例

光学理论似乎并没有实质意义,在编程领域则需要掌握具体的实现方式。为了深入理解这些概念并将其应用到实际项目中去,在这一阶段需要通过编写代码来进行充分的实践操作。通过实际操作来加深理解,在这一阶段可以通过编写实战案例来验证自己的学习成果,并积累项目经验。除此之外,在这一阶段还可以关注一些高级的技术内容,并尝试解决一些实际应用中的问题以提升自己的能力水平。此外,在这一阶段还可以关注一些高级的技术内容,并尝试解决一些实际应用中的问题以提升自己的能力水平。此外,“100+实战案例源码等你来拿!”

在这里插入图片描述
③Python小游戏源码

假如觉得上面的实战案例略微有些无聊的话,那不妨试着自己用Python编写一个小游戏,在学习过程中增加一些趣味性.

在这里插入图片描述
五、面试资料

学习Python必定是为了获取高薪工作机会。这些试题源自于阿里、腾讯、字节等国内顶尖互联网企业的最新考卷,并且由经验丰富的阿里技术专家提供了详尽的解析。通过系统地研究这套试题,相信每一位读者都能够掌握核心技能并顺利获得理想的工作机会。

在这里插入图片描述
在这里插入图片描述
六、Python兼职渠道

此外,在掌握了Python编程技能后,在各类兼职平台上接单实现挣钱变得更加容易。我已将各类兼职渠道、注意事项以及客户沟通技巧整理成相关文档。

在这里插入图片描述
在这里插入图片描述

保证100%免费

保证100%免费

确保无条件免费提供

全部评论 (0)

还没有任何评论哟~