Python 은 상품 의 역사적 가격 을 조회 하 는 작은 도 구 를 만 듭 니 다.

1 년 에 한 번 있 는 쌍십일 이 곧 다가 오 는데 각종 가격 을 깎 고 건물 을 짓 고 현금 을 파 는 구령 이 앞으로 한 달 동안 친구 권,위 챗 군 에 가득 할 것 이다.쌍 십일 행 사 를 여러 번 해 본 편집장 은 한 끼 조작 이 호랑이 처럼 맹렬 하 다 고 말 해 결 과 를 보 니 2 마 오 5 마 오 였 다.시간 을 낭비 하 는 것 은 말 하지 않 을 뿐만 아니 라 반드시 진정한 혜택 을 받 는 것 도 아니다.쌍 십일 전자상거래 의'명 강 암 승'은 이미 기본 적 인 잠재 적 인 규칙 이다.이런 규칙 을 깨 는 것 은 매우 간단 해서 Python 으로 상품 가격 을 정시 에 감시 하 는 작은 도 구 를 쓸 수 있다.

사고의 방향
4
  • 첫 번 째 단계 에서 상품 의 가격 을 캡 처 하여 Python 자체 가 가지 고 있 는 SQLite 데이터베이스 에 저장 합 니 다
  • 매일 정시 캡 처 상품 가격4
  • pyecharts 모듈 을 사용 하여 가격 할인 도 를 그 려 서 저렴 한 가격 을 한눈 에 알 수 있 습 니 다.
  • 경 동 가격 을 잡다.
    상품 상세 페이지 에서 F12 제어 판 을 열 고 p.3 을 포함 하 는 링크 를 찾 으 면 옆 에 있 는 preview 판 에서 현재 상품 가격 을 볼 수 있 습 니 다.
    
    def get_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 시 에 경 동 가격 을 잡 는 단계 입 니 다.
    설치 스케줄 모듈
    
    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 이 역사적 가격 을 조회 하 는 데 관 한 자 료 는 저희 의 다른 관련 글 을 주목 하 시기 바 랍 니 다!

    좋은 웹페이지 즐겨찾기