计算传播学

抓取商品历史价格

2020-03-09  本文已影响0人  c0659eed21f5
历史价格查询.png

商品历史价格查询网站哪家强?10大网站详细对比评测出炉!
https://www.jianshu.com/p/e040c5d44dfe

第一步, http://p.zwjhl.com [查询商品历史价格走势] 京东、天猫、淘宝、亚马逊、苏宁、当当、1号店、易迅、国美、新蛋等商品网址

第二步,来试一下这个天猫商家:https://detail.tmall.com/item.htm?id=602977570356

查询页面.png

第三步,查看网页源代码:

数据格式.png 更多数据.png
import requests
from bs4 import BeautifulSoup
import numpy as np
import datetime

url = 'http://p.zwjhl.com/price.aspx?url=https%3A%2F%2Fdetail.tmall.com%2Fitem.htm%3Fid%3D602977570356'
content = requests.get(url)
soup = BeautifulSoup(content.text) 
a  = soup('script')[-1].text.split("\'")[1]
a
'[1568908800000,38.0,""],[1568995200000,38.0,""],[1569081600000,39.0,""],[1569168000000,39.0,""],[1569254400000,39.0,""],[1569340800000,39.0,""],[1569427200000,38.0,""],[1569513600000,38.0,""],[1569600000000,38.0,""],[1569686400000,39.0,""],[1569772800000,39.0,""],[1569859200000,39.0,""],[1569945600000,39.0,""],[1570032000000,39.0,""],[1570118400000,39.0,""],[1570204800000,39.0,""],[1570291200000,39.0,""],[1570377600000,39.0,""],[1570464000000,39.0,""],[1570550400000,39.0,""],[1570636800000,39.0,""],[1570723200000,39.0,""],[1570809600000,39.0,""],[1570896000000,39.0,""],[1570982400000,38.0,""],[1571068800000,38.0,""],[1571155200000,38.0,""],[1571241600000,39.0,""],[1571328000000,39.0,""],[1571414400000,39.0,""],[1571500800000,39.0,""],[1571587200000,39.0,""],[1571673600000,39.0,""],[1571760000000,39.0,""],[1571846400000,39.0,""],[1571932800000,39.0,""],[1572019200000,39.0,""],[1572105600000,39.0,""],[1572192000000,39.0,""],[1572278400000,39.0,""],[1572364800000,39.0,""],[1572451200000,39.0,""],[1572537600000,39.0,""],[1572624000000,39.0,""],[1572710400000,39.0,""],[1572796800000,39.0,""],[1572883200000,39.0,""],[1572969600000,34.0,""],[1573056000000,34.0,""],[1573142400000,34.0,""],[1573228800000,34.0,""],[1573315200000,34.0,""],[1573401600000,34.0,""],[1573488000000,39.0,""],[1573574400000,39.0,""],[1573660800000,39.0,""],[1573747200000,39.0,""],[1573833600000,39.0,""],[1573920000000,39.0,""],[1574006400000,37.0,""],[1574092800000,37.0,""],[1574179200000,37.0,""],[1574265600000,37.0,""],[1574352000000,37.0,""],[1574438400000,39.0,""],[1574524800000,39.0,""],[1574611200000,39.0,""],[1574697600000,39.0,""],[1574784000000,39.0,""],[1574870400000,39.0,""],[1574956800000,39.0,""],[1575043200000,39.0,""],[1575129600000,39.0,""],[1575216000000,39.0,""],[1575302400000,39.0,""],[1575388800000,39.0,""],[1575475200000,39.0,""],[1575561600000,39.0,""],[1575648000000,39.0,""],[1575734400000,39.0,""],[1575820800000,39.0,""],[1575907200000,39.0,""],[1575993600000,39.0,""],[1576080000000,35.0,""],[1576166400000,39.0,""],[1576252800000,39.0,""],[1576339200000,39.0,""],[1576425600000,39.0,""],[1576512000000,39.0,""],[1576598400000,39.0,""],[1576684800000,35.0,""],[1576771200000,35.0,""],[1576857600000,35.0,""],[1576944000000,35.0,""],[1577030400000,39.0,""],[1577116800000,39.0,""],[1577203200000,39.0,""],[1577289600000,35.0,""],[1577376000000,35.0,""],[1577462400000,39.0,""],[1577548800000,39.0,""],[1577635200000,39.0,""],[1577721600000,39.0,""],[1577808000000,39.0,""],[1577894400000,39.0,""],[1577980800000,39.0,""],[1578067200000,39.0,""],[1578153600000,39.0,""],[1578240000000,39.0,""],[1578326400000,29.0,""],[1578412800000,29.0,""],[1578499200000,29.0,""],[1578585600000,29.0,""],[1578672000000,39.0,""],[1578758400000,39.0,""],[1578844800000,39.0,""],[1578931200000,39.0,""],[1579017600000,39.0,""],[1579104000000,39.0,""],[1579190400000,39.0,""],[1579276800000,39.0,""],[1579363200000,39.0,""],[1579449600000,38.0,""],[1579536000000,39.0,""],[1579622400000,39.00,""],[1579708800000,39.00,""],[1579795200000,39.00,""],[1579881600000,39.00,""],[1579968000000,39.00,""],[1580054400000,39.00,""],[1580140800000,39.00,""],[1580227200000,39.00,""],[1580313600000,39.00,""],[1580400000000,39.00,""],[1580486400000,39.00,""],[1580572800000,39.00,""],[1580659200000,39.00,""],[1580745600000,39.00,""],[1580832000000,39.00,""],[1580918400000,39.00,""],[1581004800000,39.00,""],[1581091200000,39.00,""],[1581177600000,39.00,""],[1581264000000,39.0,""],[1581350400000,39.0,""],[1581436800000,39.0,""],[1581523200000,39.0,""],[1581609600000,39.0,""],[1581696000000,39.0,""],[1581782400000,39.0,""],[1581868800000,39.0,""],[1581955200000,39.0,""],[1582041600000,39.0,""],[1582128000000,39.00,"39元"],[1582214400000,39.0,""],[1582300800000,39.0,""],[1582387200000,39.00,"39元"],[1582473600000,39.0,""],[1582560000000,39.00,"39元"],[1582646400000,39.00,"39元"],[1582732800000,39.0,""],[1582819200000,37.30,"112元(合37.33元/件)"],[1582905600000,39.0000,""],[1582992000000,39.0,""],[1583078400000,39.00,""],[1583164800000,39.0,""],[1583251200000,39.00,""],[1583337600000,39.00,"39元"],[1583424000000,39.00,"39元"],[1583510400000,39.0,""],[1583596800000,39.0,""],[1583683200000,39.0,""]'

def unix2time(u):
    unix_ts =u/1000 #e.g., u = 1568908800000
    dt = datetime.datetime.fromtimestamp(unix_ts)
    #dt = dt.strftime("%Y-%m-%d")
    return dt

b = [i.replace('[', '').replace(']','') for i in a.split('],[')]
b = [i.split(',')  for i in b]

times, price, note = np.array(b).T
price = price.astype('float')
times = times.astype('int')
times = [unix2time(i) for i in times]
import pylab as plt
plt.figure(figsize=(8, 3), dpi = 200)
plt.plot(times, price)
plt.xticks(rotation=60)
plt.show()
上一篇下一篇

猜你喜欢

热点阅读