通過 python 采集京東店鋪所有商品數(shù)據(jù)接口,京東店鋪商品數(shù)據(jù)接口,京東 API 接口
由于京東的數(shù)據(jù)是動態(tài)加載的,我們可以使用Selenium模塊來模擬用戶操作,實現(xiàn)數(shù)據(jù)的爬取。
具體步驟如下:
安裝Selenium模塊
在命令行窗口中輸入以下命令,即可安裝Selenium模塊:
pip install selenium
下載瀏覽器驅(qū)動程序Selenium需要依賴瀏覽器驅(qū)動程序來控制瀏覽器。我們可以根據(jù)自己使用的瀏覽器版本,去下載對應(yīng)的驅(qū)動程序。以Chrome瀏覽器為例,我們可以到以下網(wǎng)址下載對應(yīng)的驅(qū)動程序:
https://sites.google.com/a/chromium.org/chromedriver/downloads
注意:下載完驅(qū)動程序后需要將驅(qū)動程序的路徑添加到系統(tǒng)的環(huán)境變量中,以便Selenium可以找到驅(qū)動程序。
編寫Python程序
根據(jù)京東網(wǎng)站的頁面結(jié)構(gòu),我們可以通過以下步驟來完成數(shù)據(jù)的爬?。?/p>
(1) 打開京東網(wǎng)站的首頁,并進(jìn)入需要爬取的店鋪頁面。
from selenium import webdriver browser = webdriver.Chrome() browser.get('https://www.jd.com/') search_box = browser.find_element_by_id('key')
search_box.send_keys('店鋪名稱') search_button = browser.find_element_by_class_name('button')
search_button.click() store_link = browser.find_element_by_xpath('//div[@class="gl-i-wrap"]/a[@target="_blank"]')
store_link.click()
(2) 遍歷所有分頁,并獲取每頁的商品數(shù)據(jù)。
import time
data = []# 循環(huán)遍歷分頁數(shù)據(jù)while True: ? ?# 獲取本頁的商品數(shù)據(jù)
? ?items = browser.find_elements_by_xpath('//div[@class="gl-i-wrap"]') ? ?for item in items:
? ? ? ?title = item.find_element_by_xpath('.//div[@class="p-name"]/a/em')
? ? ? ?price = item.find_element_by_xpath('.//div[@class="p-price"]//i')
? ? ? ?data.append({'標(biāo)題': title.text, '價格': price.text}) ? ?# 判斷是否有下一頁
? ?next_page = browser.find_element_by_xpath('//a[@class="pn-next"]') ? ?if 'disabled' in next_page.get_attribute('class'): ? ? ? ?break
? ?# 進(jìn)入下一頁
? ?next_page.click()
? ?time.sleep(1)# 打印所有商品數(shù)據(jù)for item in data: ? ?print(item)
完整代碼如下:
JD.item_search_shop - 獲得店鋪的所有商品接口
1. 請求方式:HTTPS? POST GET
2. 請求參數(shù):??
請求參數(shù):seller_nick=皓頓HAUTTON京東自營旗艦店&start_price=0&end_price=0&q=&page=1&cid=??
參數(shù)說明:seller_nick:店鋪昵稱
start_price:開始價格??
end_price:結(jié)束價格?
q:搜索關(guān)鍵字?
page:頁數(shù)? ? ?cid:分類ID? ?
3.請求鏈接:http://c0b.cc/R4rbK2
4.請求示例,支持高并發(fā)(CURL、PHP 、PHPsdk 、Java 、C# 、Python...)
5.響應(yīng)參數(shù)
