Есть ли способ получить все результаты, чтобы появиться? - PullRequest
2 голосов
/ 15 апреля 2019

Снова с webscraping FreshDirect, и все мои результаты должны появиться в списке, который я настроил для словарей (в коде это выглядит как cart_items).Однако появляется только последний.Как я могу заставить их все появляться?

Сначала я просто поместил параметры для желаемых результатов в список словарей.Затем я попытался использовать цикл for, но он дал мне те же результаты.Проверьте код ниже:

fd = []
cart_items = []
needed_value = []
standing_value = []

def get_values():
    inputs = str(soup.find_all('input', class_='qty'))
    cart_items.append(inputs)
get_values()

def get_ids():
    for result in cartline:
        cart_item = str(result.find('a', {'class':'cartline-link'}, href = re.compile('/product_modify.jsp')))
        #print(type(cart_item))
        #print(cart_item)
        cart_items.append(cart_item)
get_ids()

def get_tags():
    new_soup = BeautifulSoup(str(cart_items), 'lxml')
    #print(type(new_soup))
    #print(len(new_soup))
    #pp.pprint(new_soup)
    current_id = new_soup.find_all('a')
    for x in current_id:
        ids = x.get('id')
    current_product_name = new_soup.find_all('a')
    for y in current_product_name:
        product_name = y.contents[0]
    current_quantity = new_soup.find_all('input')
    for z in current_quantity:
        quantity = z.get('value')
    current_product = {'id': ids[14:], 'product_name': product_name, 'quantity': quantity}
    fd.append(current_product)
get_tags()

print(fd)

В настоящее время я получаю следующие результаты:

[{'id': '-812063945', 'product_name': 'Baby Avocados', 'quantity': '1'}]

Мне нужны результаты для всех в корзине, в идеале, для каждого элементаИмея собственный список словарей (для контекста: у меня около 30 наименований, а не только один)Нужно ли составлять пустой список для каждого элемента?Я просто не уверен, как мне решить эту проблему, но я подумал, что цикл for какой-то был бы необходим.Большое спасибо сообществу Stackoverflow за помощь в этом.Все это скоро начнет собираться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...