一年一度的雙十一就快到了,各種砍價、蓋樓、挖現金的口令將在未來乙個月內充斥朋友圈、微信群中。玩過多次雙十一活動的小編表示一頓操作猛如虎,一看結果2毛5。浪費時間不說而且未必得到真正的優惠,雙十一電商的「明降暗公升」已經是預設的潛規則了。打破這種規則很簡單,可以用 python 寫乙個定時監控商品**的小工具。
思路第一步抓取商品的**存入 python 自帶的 sqlite 資料庫每天定時抓取商品**使用 pyecharts 模組繪製**折線圖,讓低價一gkjganrllf目了然
抓取京東**
從商品詳情的頁面中開啟 f12 控制面板,找到包含 p.3 的鏈結,在旁邊的 preview 面板中可以看到當前商品**
defget_jd_price(skuid):
sku_detail_url = ''
sku_price_url = ''
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 =
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"), da程式設計客棧ta.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 =
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爬取京東雙十一商品**曲線
本文位址: /jiaoben/python/357229.html
京東雙十一
誕生於2003年,天貓雙十一則開始於2009年的11月11日。由於日期是 1 的重複,這一天又被稱為 光棍節 因此推出了全場半價包郵活動,讓 單身狗們 一次買個夠。不料一經推出,就火爆了中國,引發了全民購物狂歡,銷售資料更是年年重新整理紀錄。根據公開報道整理,2009年的第乙個雙十一,參與的商家較少...
python京東商品 Python爬取京東商品資料
對京東某一商品資訊頁面的html 進行分析。能夠發現它的圖書產品資訊頁面都含有這樣一段 不同類的商品頁面有些不同 window.pageconfig 顯然這就是我們須要的商品資訊,python 例如以下 import json import re import urllib for i in ran...
Python爬取京東商品
自動開啟京東首頁,並輸入你要搜尋的東西,進入介面進行爬取資訊 from selenium import webdriver import time class jdspider object def init self self.browser webdriver.chrome self.url s...