一、抓取數(shù)據(jù)
1、抓取數(shù)據(jù)的意義
對電商來說,抓取某些數(shù)據(jù),再進行分析,可以有效地反映出數(shù)據(jù)在某個區(qū)間內變化情況。數(shù)據(jù)受某些因素而發(fā)生巨大的影響,也可以借助分析的數(shù)據(jù)來規(guī)劃相關項目的后續(xù)發(fā)展。因此,如果能利用網(wǎng)頁爬取數(shù)據(jù)技術獲取數(shù)據(jù)并對各種數(shù)據(jù)進行統(tǒng)計分析,對后續(xù)淘寶的發(fā)展具有指導意義。
2、抓取的內容
包括:商品名稱title、商品價格price、付款人數(shù)deal,店鋪名稱shop、店鋪地址location、商品的詳情頁detail_url等參數(shù)。
3、實現(xiàn)內容
1、開打淘寶網(wǎng)站,輸入搜索內容“新款連衣裙”查找商品
2、再解決登錄問題(登錄時解決網(wǎng)站對selenium的判別,修改瀏覽器的內部屬性,否則被識別出有selenium,需要進行滑動登陸驗證。但是在運行時,你手動地去進行滑動登錄也是會判別出存在selenium的,進而登陸不上去)
3、對查找商品在控制臺上輸出
4、具體實現(xiàn)代碼
- from selenium import webdriver
- import time
- import random
二、封裝接口方式
taobao.item_search-獲得淘寶天貓商品列表數(shù)據(jù)接口
1.請求方式:HTTP POST GET
2.請求參數(shù):
請求參數(shù):q=女裝&start_price=0&end_price=0&page=1&cat=0&discount_only=&sort=&page_size=&seller_info=&nick=&ppath=&imgid=&filter=
參數(shù)說明:q:搜索關鍵字
cat:分類ID
start_price:開始價格
end_price:結束價格
sort:排序[bid,_bid,bid2,_bid2,_sale,_credit]
(bid:總價,bid2:商品價格,sale:銷量,credit信用,加_前綴為從大到小排序)
page:頁數(shù)
3.公共參數(shù)
名稱 | 類型 | 必須 | 描述 |
---|---|---|---|
key | String | 是 | 調用key(必須以GET方式拼接在URL中) |
secret | String | 是 | 調用密鑰 (復制v:Taobaoapi2014 ) |
api_name | String | 是 | API接口名稱(包括在請求地址中)[item_search,item_get,item_search_shop等] |
cache | String | 否 | [yes,no]默認yes,將調用緩存的數(shù)據(jù),速度比較快 |
result_type | String | 否 | [json,jsonu,xml,serialize,var_export]返回數(shù)據(jù)格式,默認為json,jsonu輸出的內容中文可以直接閱讀 |
lang | String | 否 | [cn,en,ru]翻譯語言,默認cn簡體中文 |
version | String | 否 | API版本 (查看接口調用示例 ) |
4.請求代碼示例,支持高并發(fā)請求(CURL、PHP 、PHPsdk 、Java 、C# 、Python...)
# coding:utf-8
"""
Compatible for python2.x and python3.x
requirement: pip install requests
"""
from __future__ import print_function
import requests
# 請求示例 url 默認請求參數(shù)已經(jīng)做URL編碼
url = "https://api-vx.Taobaoapi2014.cn/taobao/item_search/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&q=女裝&start_price=0&end_price=0&page=1&cat=0&discount_only=&sort=&page_size=&seller_info=&nick=&ppath=&imgid=&filter="
headers = {
"Accept-Encoding": "gzip",
"Connection": "close"
}
if __name__ == "__main__":
r = requests.get(url, headers=headers)
json_obj = r.json()
print(json_obj)
5.響應示例