在尝试拉取Shopee商店中列出的产品的价格和名称时,我遵循@Qharr在以下位置提出的解决方案:Selenium can not scrape Shopee e-commerce site using python? 我将循环插入到引荐来源网址和API中,这是我的代码:
import requests
i=1
while i<20:
headers = {
'User-Agent': 'Mozilla/5',
'Referer': 'https://shopee.com.my/shop/42575106/search?page='+str(i)+'&sortBy=pop'
}
url = 'https://shopee.com.my/api/v2/search_items/?by=pop&limit=30&match_id=42575106&newest='+str(30*i)+'&order=desc&page_type=shop'
r = requests.get(url, headers = headers).json()
for item in r['items']:
print(item['name'], ' ', item['price'])
i=i+1
在构建该代码时,一切都很好,这是consolse输出的前两行:
12 Turbo Black CPU Cooler (RR-212TK-16PR-R1) 11900000
HIGH QUALITY 3 PIN UK TO IEC C5 NOTEBOOK POWER CABLE WITH FUSE 1.5M 1270000
但是,只是第一次,针对特定的代码,进一步尝试构建该代码会带来不同的输出(价格被第一次替换为空,并且名称第一次不完整)
12 Turbo Black CPU Cooler (RR-212TK-16P None
HIGH QUALITY 3 PIN UK TO IEC C5 NOTEBOOK POWER CABLE WITH FUSE None
每天,该代码在到达建筑物时仅能顺利运行一次。
请为我解释原因并帮助我解决问题!谢谢!