1 回答

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊
使用 python 嘗試以下方法 -請(qǐng)求簡(jiǎn)單、直接、可靠、快速,并且在請(qǐng)求時(shí)需要更少的代碼。在檢查了 google chrome 瀏覽器的網(wǎng)絡(luò)部分后,我從網(wǎng)站本身獲取了 API URL。
下面的腳本到底在做什么:
首先,它將獲取 API URL,根據(jù) 2 個(gè)動(dòng)態(tài)參數(shù)(產(chǎn)品和類(lèi)別)創(chuàng)建 URL,然后執(zhí)行 GET 請(qǐng)求來(lái)獲取數(shù)據(jù)。
獲取數(shù)據(jù)后腳本將使用 json.loads 庫(kù)解析 JSON 數(shù)據(jù)。最后,它將一一迭代所有產(chǎn)品列表,并打印分為 2 個(gè)類(lèi)別“?box1_ProductToProduct?”和“?box2_KategorieTopseller?”的詳細(xì)信息,如品牌、名稱(chēng)、產(chǎn)品編號(hào)和單價(jià)。同樣,您可以通過(guò)查看 API 調(diào)用來(lái)添加更多詳細(xì)信息。
import json
import requests
from urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
def scrap_product_details():
PRODUCT = 'MMCH1991479' #Product number
CATEGORY = '680942' #Category number
URL = 'https://www.mediamarkt.ch/rde_server/res/MMCH/recomm/product_detail/sid/WACXyEbIf3khlu6FcHlh1B1?product=' + PRODUCT + '&category=' + CATEGORY? # dynamic URL
response = requests.get(URL,verify = False) #GET request to fetch the data
result = json.loads(response.text) # Parse JSON data using json.loads
box1_ProductToProduct = result[0]['box1_ProductToProduct'] # Extracted data from API
box2_KategorieTopseller = result[1]['box2_KategorieTopseller']
for item in box1_ProductToProduct: # loop over extracted data
? ? print('-' * 100)
? ? print('Brand : ',item['brand'])
? ? print('Name : ',item['name'])
? ? print('Net Unit Price : ',item['netUnitPrice'])
? ? print('Product Number : ',item['product_nr'])
? ? print('-' * 100)
for item in box2_KategorieTopseller:? # loop over extracted data
? ? print('-' * 100)
? ? print('Brand : ',item['brand'])
? ? print('Name : ',item['name'])
? ? print('Net Unit Price : ',item['netUnitPrice'])
? ? print('Product Number : ',item['product_nr'])
? ? print('-' * 100)
scrap_product_details()
添加回答
舉報(bào)