最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Python爬取京東雙十一商品價(jià)格曲線

 更新時(shí)間:2020年10月23日 09:56:39   作者:松鼠愛吃餅干  
這篇文章主要介紹了基于Python爬取雙十一商品價(jià)格曲線,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

一年一度的雙十一就快到了,各種砍價(jià)、蓋樓、挖現(xiàn)金的口令將在未來一個(gè)月內(nèi)充斥朋友圈、微信群中。玩過多次雙十一活動(dòng)的小編表示一頓操作猛如虎,一看結(jié)果2毛5。浪費(fèi)時(shí)間不說而且未必得到真正的優(yōu)惠,雙十一電商的“明降暗升”已經(jīng)是默認(rèn)的潛規(guī)則了。打破這種規(guī)則很簡(jiǎn)單,可以用 Python 寫一個(gè)定時(shí)監(jiān)控商品價(jià)格的小工具。

思路第一步抓取商品的價(jià)格存入 Python 自帶的 SQLite 數(shù)據(jù)庫每天定時(shí)抓取商品價(jià)格使用 pyecharts 模塊繪制價(jià)格折線圖,讓低價(jià)一目了然

抓取京東價(jià)格

從商品詳情的頁面中打開 F12 控制面板,找到包含 p.3 的鏈接,在旁邊的 preview 面板中可以看到當(dāng)前商品價(jià)格

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

把抓取的價(jià)格存入 sqlite 數(shù)據(jù)庫,使用 PyCharm 的 Database 功能創(chuàng)建一個(gè) sqlite 數(shù)據(jù)庫

最終將數(shù)據(jù)插入到數(shù)據(jù)庫

# 新增
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

示例結(jié)果

計(jì)劃任務(wù)

使用輕量級(jí)的 schedule 模塊每天早上 10 點(diǎn)抓取京東價(jià)格這一步驟

安裝 schedule 模塊

pip install schedule
def run_price_job(skuId):

  # 使用不占主線程的方式啟動(dòng) 計(jì)劃任務(wù)
  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點(diǎn)運(yùn)行,get_jd_price:任務(wù)方法,skuId:任務(wù)方法的參數(shù)
  schedule.every().day.at("10:00").do(get_jd_price, skuId=skuId)
  run_continuously()

查看歷史價(jià)格

使用 pytharts 模塊繪制折線圖,直觀的查看每一天的價(jià)格差異

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("商品歷史價(jià)格.html")
  )

總結(jié)

本文抓取了京東商城的價(jià)格,小伙伴們也可以修個(gè)腳本抓取淘寶的價(jià)格。使用 Python 解決生活中的小小痛點(diǎn),讓錢包不再干癟。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python中函數(shù)傳參的幾種實(shí)現(xiàn)方式

    python中函數(shù)傳參的幾種實(shí)現(xiàn)方式

    這篇文章主要介紹了python中函數(shù)傳參的幾種實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Scrapy的Pipeline之處理CPU密集型或阻塞型操作詳解

    Scrapy的Pipeline之處理CPU密集型或阻塞型操作詳解

    這篇文章主要介紹了Scrapy的Pipeline之處理CPU密集型或阻塞型操作詳解,Twisted框架的reactor適合于處理短的、非阻塞的操作,Twisted提供了線程池來在其他的線程而不是主線程(Twisted的reactor線程)中執(zhí)行慢的操作,需要的朋友可以參考下
    2023-10-10
  • java關(guān)于string最常出現(xiàn)的面試題整理

    java關(guān)于string最常出現(xiàn)的面試題整理

    在本篇文章里小編給大家整理的是一篇關(guān)于java關(guān)于string最常出現(xiàn)的面試題整理內(nèi)容,有興趣的朋友們可以參考下。
    2021-01-01
  • python超簡(jiǎn)單解決約瑟夫環(huán)問題

    python超簡(jiǎn)單解決約瑟夫環(huán)問題

    這篇文章主要介紹了python超簡(jiǎn)單解決約瑟夫環(huán)問題的方法,詳細(xì)描述的約瑟夫環(huán)問題的描述與Python解決方法,需要的朋友可以參考下
    2015-05-05
  • Python利用keyboard模塊實(shí)現(xiàn)鍵盤記錄操作

    Python利用keyboard模塊實(shí)現(xiàn)鍵盤記錄操作

    模擬鍵盤操作執(zhí)行自動(dòng)化任務(wù),我們常用的有pyautowin等自動(dòng)化操作模塊。今天介紹的這個(gè)模塊叫做keyboard,它是純Python原生開發(fā),編譯時(shí)完全不需要依賴C語言模塊。一行命令就能完成安裝,非常方便,需要的可以了解一下
    2022-10-10
  • Python @property及getter setter原理詳解

    Python @property及getter setter原理詳解

    這篇文章主要介紹了Python @property及getter setter原理詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 解讀FastAPI異步化為transformers模型打造高性能接口

    解讀FastAPI異步化為transformers模型打造高性能接口

    這篇文章主要介紹了解讀FastAPI異步化為transformers模型打造高性能接口問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python selenium爬蟲實(shí)現(xiàn)定時(shí)任務(wù)過程解析

    Python selenium爬蟲實(shí)現(xiàn)定時(shí)任務(wù)過程解析

    這篇文章主要介紹了Python selenium爬蟲實(shí)現(xiàn)定時(shí)任務(wù)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python程序設(shè)計(jì)入門(3)數(shù)組的使用

    Python程序設(shè)計(jì)入門(3)數(shù)組的使用

    這篇文章主要介紹了Python數(shù)組的使用方法,需要的朋友可以參考下
    2014-06-06
  • 打包python 加icon 去掉cmd黑窗口方法

    打包python 加icon 去掉cmd黑窗口方法

    今天小編就為大家分享一篇打包python 加icon 去掉cmd黑窗口方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06

最新評(píng)論

慈溪市| 安义县| 临安市| 澎湖县| 綦江县| 武山县| 灵丘县| 磴口县| 元氏县| 苗栗市| 海原县| 克拉玛依市| 南溪县| 海南省| 六盘水市| 富平县| 渝中区| 改则县| 庆城县| 德阳市| 诸城市| 太和县| 马边| 雷山县| 婺源县| 乌兰察布市| 邵武市| 慈溪市| 屏东县| 田阳县| 石台县| 西林县| 五峰| 陆良县| 德化县| 琼结县| 涞水县| 自治县| 眉山市| 两当县| 临澧县|