Как добавить один спиок в другой в BeautifulSoup

У меня есть парсер, которой пасрит названия товаров, но я хочу еще добавить id для этого списка, как мне это сделать?

Код:

import requests
from bs4 import BeautifulSoup
import csv
import os

URL = 'https://ptk-svarka.ru/catalog/apparaty-argonodugovoy-svarki-tig'
HEADERS = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', 'accept': '*/*'}

def get_html(url, params=None):
    r = requests.get(url, headers=HEADERS, params=params)
    return r

def get_html_vivod(html):
    svarka = []
    soup = BeautifulSoup(html, 'html.parser')
    items = soup.find_all('div', class_='b-products')
    for item in items:  
        svarka.append({
            #id - здесь должен быть айди
            "text": item.find('div', class_='b-products__title').get_text(strip=True)
            })
    return svarka

html = get_html(URL)
print(get_html_vivod(html.text))

Ответы (1 шт):

Автор решения: Михаил Муругов

Раз проблема в генерации id, то надо решить, как его генерировать. Первые 2 варианта, пришедшие в голову:

enumerate

...
for idx, item in enumerate(items):  
        svarka.append({
            "id": idx
            "text": item.find('div', class_='b-products__title').get_text(strip=True)
            })
...

В таком случае id будет инкрементироваться с каждой итерацией (0, 1, 2 и т.д.).

uuid

from uuid import uuid4
...
for item in enumerate(items):  
        svarka.append({
            "id": str(uuid4())
            "text": item.find('div', class_='b-products__title').get_text(strip=True)
            })
...

Так каждый раз будут генеирироваться уникальные идентификаторы, похожие на 13a7a512-4aef-4162-9c6e-5a5b181534b8.

→ Ссылка