Python爬蟲——實戰二:爬取天貓產品價格(逆向工程方法)
天貓上的產品價格請求URL的分析過程和爬京東價格的時候是類似的。
通過分析,得到天貓商品價格的請求URL:’https://mdskip.taobao.com/core/initItemDetail.htm?itemId=556708482118(這個是簡化之後的,可用)。但是這個網頁開啟之後出現403 Forbidden 錯誤。這是因為在傳送請求的時候需要新增Referer引數,其格式為“https://detail.tmall.com/item.htm?id=556708482118”。
程式碼
#-*-coding:utf-8 -*-
import urllib2
import json
def tmall_price(url):
id = url.split("=")[-1]
headers = {"Referer": "https://detail.tmall.com/item.htm?id={}".format(id)}
request = urllib2.Request(url, headers=headers)
response = urllib2.urlopen(request)
html = response.read().decode("gbk")
result = json.loads(html)
price_info = result["defaultModel"]["itemPriceResultDO"]["priceInfo"]
print price_info[price_info.keys()[0]]["promotionList"][0]["price"]
if __name__=="__main__":
url = 'https://mdskip.taobao.com/core/initItemDetail.htm?itemId=556708482118'
tmall_price(url)
得到的資料有如下形式:
{u'isSuccess': True,
u'defaultModel':
{u'deliveryDO':
{u'deliverySkuMap':
{u'default':
[{u'postage': u'\u5feb\u9012: 0.00 EMS: 0.00 ', u'postageFree': False, u'skuDeliveryAddress': u'\u5e7f\u4e1c\u5e7f\u5dde', u'arrivalNextDay': False, u'type': 0, u'arrivalThisDay': False}]
},
u'areaId': 330100,
u'destination': u'\u676d\u5dde\u5e02',
u'success': True,
u'deliveryAddress': u'\u5e7f\u4e1c\u5e7f\u5dde'},
u'doubleEleven2014':
{u'showRightRecommendedArea': False, u'halfOffItem': False, u'showAtmosphere': False, u'success': True, u'step': 0, u'doubleElevenItem': False},
u'itemPriceResultDO':
{u'areaId': 330100,
u'extraPromShowRealPrice': False,
u'success': True,
u'priceInfo':
{u'3446150153619':
{u'areaSold': True,
u'price': u'399.00',
u'promotionList':
[{u'status': 2,
u'postageFree': False,
u'canBuyCouponNum': 0,
u'extraPromType': 0,
u'price': u'299.00',
u'tfCartSupport': False,
u'unLogBrandMember': False,
u'promType': u'normal',
u'amountRestriction': u'',
u'amountPromLimit': 0,
u'start': False,
u'unLogTbvip': False,
u'basePriceType': u'IcPrice',
u'extraPromTextType': 0,
u'startTime': 1497959518000L,
u'tmallCartSupport': False,
u'endTime': 1530028740000L,
u'type': u'\u79cb\u88c5\u4e0a\u65b0',
u'unLogShopVip': False,
u'limitProm': False}],
u'onlyShowOnePrice': False,
u'sortOrder': 0},
u'3446150153611': ...,
u'3446150153612': ...,
u'3446150153613': ...,
...
u'tmallShopProm': ...
這裡關注的只有價格資訊,其結構為defaultModel–>itemPriceResultDO–>priceInfo–>3446150153619–>promotionList–>0–>price。
在實際爬取多個產品價格時,還發現另外一種價格資訊結構:
defaultModel–>itemPriceResultDO–>priceInfo–>3446150153619–>price。
但是為什麼有這麼多個價格,3446150153619之類的字串表示什麼??
相關文章
- Python爬蟲——實戰一:爬取京東產品價格(逆向工程方法)Python爬蟲
- Python爬蟲實戰一:爬取csdn學院所有課程名、價格和課時Python爬蟲
- python爬蟲實戰:爬取西刺代理的代理ip(二)Python爬蟲
- [Python Scrapy爬蟲] 二.翻頁爬取農產品資訊並儲存本地Python爬蟲
- python爬蟲之js逆向(二)Python爬蟲JS
- python 爬蟲實戰專案--爬取京東商品資訊(價格、優惠、排名、好評率等)Python爬蟲
- 收藏的爬蟲逆向工程爬蟲
- Python爬蟲實戰:爬取淘寶的商品資訊Python爬蟲
- python爬蟲js逆向學習(二)Python爬蟲JS
- Python爬蟲實戰詳解:爬取圖片之家Python爬蟲
- Python3.X 爬蟲實戰(併發爬取)Python爬蟲
- python爬蟲js逆向Python爬蟲JS
- Python 爬蟲實戰Python爬蟲
- [python爬蟲] BeautifulSoup爬取+CSV儲存貴州農產品資料Python爬蟲
- Python爬蟲實戰案例-爬取幣世界標紅快訊Python爬蟲
- python爬蟲實戰,爬蟲之路,永無止境Python爬蟲
- 圖靈樣書爬蟲 - Python 爬蟲實戰圖靈爬蟲Python
- 爬蟲實戰(二):Selenium 模擬登入並爬取資訊爬蟲
- 爬蟲實戰——58同城租房資料爬取爬蟲
- Python爬蟲實戰-使用Scrapy框架爬取土巴兔(一)Python爬蟲框架
- python爬蟲之JS逆向Python爬蟲JS
- Python 爬蟲實戰(2):股票資料定向爬蟲Python爬蟲
- Python 爬蟲實戰(二):使用 requests-htmlPython爬蟲HTML
- 【Python爬蟲9】Python網路爬蟲例項實戰Python爬蟲
- python爬蟲實戰教程-Python爬蟲開發實戰教程(微課版)Python爬蟲
- python爬蟲---網頁爬蟲,圖片爬蟲,文章爬蟲,Python爬蟲爬取新聞網站新聞Python爬蟲網頁網站
- Python實現微博爬蟲,爬取新浪微博Python爬蟲
- 爬蟲——爬取貴陽房價(Python實現)爬蟲Python
- 網路爬蟲——爬蟲實戰(一)爬蟲
- 爬蟲實戰(一):爬取微博使用者資訊爬蟲
- 爬蟲實戰爬蟲
- Python爬取鏈家成都二手房源資訊 asyncio + aiohttp 非同步爬蟲實戰PythonAIHTTP非同步爬蟲
- python3網路爬蟲開發實戰_Python3 爬蟲實戰Python爬蟲
- python爬蟲-33個Python爬蟲專案實戰(推薦)Python爬蟲
- python爬蟲之js逆向(三)Python爬蟲JS
- Python爬蟲,JS逆向之 webpack 打包站點原理與實戰Python爬蟲JSWeb
- Python網路爬蟲實戰Python爬蟲
- python 爬蟲實戰的原理Python爬蟲