Python 은 상품 의 역사적 가격 을 조회 하 는 작은 도 구 를 만 듭 니 다.
사고의 방향
4
상품 상세 페이지 에서 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 이 역사적 가격 을 조회 하 는 데 관 한 자 료 는 저희 의 다른 관련 글 을 주목 하 시기 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.