1 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
看來html的一部分是動(dòng)態(tài)加載的,所以scrapy看不到它。數(shù)據(jù)本身存在于 html 中的 json 結(jié)構(gòu)中。你可以嘗試這樣獲取:
import json
# get the script with the data
json_data = response.xpath('//script[contains(text(), "__PRELOADED_STATE__")]/text()').extract_first()
# load the data in a python dictionary
dict_data = json.loads(json_data.split('window.__PRELOADED_STATE__ =')[-1])
items = dict_data['itemList']
print(len(items)) # prints 36 in my case
# go through the dictionary and get the product_urls
for item in items:
product_url = item['product']['pdURL']
...
添加回答
舉報(bào)