相同的请求代码的不同输出与循环集成在一起,以刮取Shopee网站

时间:2019-04-26 07:47:25

标签: python loops web-scraping request e-commerce

在尝试拉取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

每天,该代码在到达建筑物时仅能顺利运行一次。

请为我解释原因并帮助我解决问题!谢谢!

0 个答案:

没有答案