这段 Python 代码使用 openpyxl 库创建一个名为 '1688 商品信息' 的 Excel 工作表,并使用 requests 库从 1688 网站抓取商品信息,并将数据写入该工作表中。

首先,代码使用 wb.create_sheet('1688 商品信息', 0) 创建一个名为 '1688 商品信息' 的工作表,并将其插入到工作簿的第一个位置(下标为 0)。

然后,代码定义一个列表 tilte1,包含了工作表的标题行数据:'商品标题', '价格', '销量', '发货地'。接下来,使用 ws1.append(tilte1) 将标题行数据写入工作表中。

接着,代码使用一个循环来获取一些随机页码,并构造一个包含关键字的 URL。然后,使用 requests 库发送 GET 请求,并将响应数据以 JSON 格式返回。尝试从响应数据中提取商品信息并进行处理。

在获取到商品信息后,代码将标题、价格、销量和发货地存储在一个列表 a 中,然后使用 ws1.append(a) 将列表写入工作表中。

最后,通过调用 wb.save('1688 商品信息.xlsx') 将工作簿保存为一个名为 '1688 商品信息.xlsx' 的 Excel 文件。

需要注意的是,这段代码中的 key 变量没有给出具体的值,您需要根据实际情况进行相应的赋值。另外,该代码中的一些请求头信息(如 Cookie 和 Referer)可能需要根据您的实际情况进行修改。

以下是对代码的详细解释:

ws1 = wb.create_sheet('1688 商品信息', 0)
tilte1 = ['商品标题', '价格', '销量', '发货地']
ws1.append(tilte1)

for i in range(1, 10):
    page = random.randint(1, 3)
    url = f'https://data.p4psearch.1688.com/data/ajax/get_premium_offer_list.json?beginpage={page}&keywords={key}'
    headers = {
        'Cookie': '_m_h5_tk=f6d2ece468755794e18d731cd5d2a7ea_1693909843172; _m_h5_tk_enc=6825034dd1d5c5aa153b1604927d63ba; cna=Y9J9HbUdfyYCAbfFEUqRQ7+a; xlly_s=1; __cn_logon__=false; cookie2=19eee0ec1af22888f56eb47296f779cf; t=46567217a7435528e07ee8c0f8ebdc36; _tb_token_=f3164715eb606; taklid=473c4d8914a3487687afc1efcc8a4ff1; _csrf_token=1693902044346; l=fBjd0FanNvA7Lk-JBOfaFurza77OSIRYouPzaNbMi9fPO01B5s2fW1TrLzT6C3GNFs99R3-WjmOpBeYBq3K-nxvO-8aKbckmndLHR35..; isg=BGNjVv7qA7zJ5M-IYZLvYJL78qcNWPeaqeI1ZZXAv0I51IP2HSiH6kEFzqxa8k-S; tfstk=d5mM0oA5BVz_bsaAHNE6jb8OIs8KC1ZbtjIYMoF28WPIkrHaMo0mCWjTHCM4Ywy_roTXAhhgjH23-LsH-2KwXVYDFNAmOinZiI91FMVmoE2wQKJ2A9_coRJYvx-CvO6W1OJ23HsCoZ2wQdbehxNfPJ2prdKAd4uZtnMKQkcl9NSQWjmhD2aSNMatiSqxVaGQ9_Fz1PCcJJxxZ_b7Jw3w7V1ik5..', 
        'Referer': 'https://p4psearch.1688.com/',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36'
    }
    r = requests.get(url, headers=headers).json() # 发送 GET 请求,请求返回的响应数据以 JSON 格式返回,并赋值给 r
    try:    # try-except 语句处理异常情况 
        datas = r['data']['content']['offerResult'] # 尝试从数据中提取商品信息 
    except:
        break
        print('数据采集完毕')
    for data in datas:
        title = data['title'].replace('<font color=red>', '').replace('</font>', '')
        link = data['eurl']
        try:
            text1 = requests.get(link, headers=headers).text
            price = re.findall(','price':'(.*?)'', text1)[0]
            salenum = re.findall(''saleNum':'(.*?)'', text1)[0]
            location = re.findall(''location\':\'(.*?)'', text1)[0]
        except:
            continue

        a = [title, price, salenum, location]
        ws1.append(a)
        print(a)
        print('=' * 80)
wb.save('1688 商品信息.xlsx')

代码说明:

  • wb 是一个 openpyxl 工作簿对象,ws1 是新创建的工作表对象。
  • key 变量没有给出具体的值,需要根据实际情况进行赋值。
  • 代码中的一些请求头信息(如 Cookie 和 Referer)可能需要根据您的实际情况进行修改。
  • try-except 语句用来处理异常情况,防止代码因异常而中断执行。
  • re.findall() 函数用来从网页内容中提取特定信息。

注意:

  • 抓取网站数据需要遵守网站的 robots.txt 协议,并注意不要过度频繁地发送请求。
  • 由于 1688 网站的结构可能会发生变化,因此代码可能需要进行调整才能正常工作。
  • 这段代码只演示了如何抓取商品信息并保存到 Excel 文件中,具体的应用场景需要根据您的需求进行调整。
使用 Python 抓取 1688 商品信息并保存到 Excel 表格

原文地址: https://www.cveoy.top/t/topic/bO7N 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录