#python #python-3.x #beautifulsoup #python-requests
#питон #python-3.x #прекрасный суп #python-запросы
Вопрос:
Я пытаюсь взломать код, который проходит через несколько URL — адресов и захватывает несколько точек данных с каждого URL-адреса. Вот мой супер-хакерский код.
import requests from bs4 import BeautifulSoup base_url = "https://www.amazon.com/s?k=mountain bikesamp;ref=nb_sb_noss_" current_page = 1 while current_page lt; 5: print(current_page) url = base_url str(current_page) #current_page = 1 r = requests.get(url) zute_soup = BeautifulSoup(r.text, 'html.parser') firme = zute_soup.findAll('div', {'class': 'brand-follow-tooltip-root'}) title = [] desc = [] page = [] for title in firme: title1 = title.findAll('h1')[0].text print(title1) adresa = title.findAll('div', {'class': 'brand-follow-tooltip-root'})[0].text print(adresa) print('n') page_line = "{title1}n{adresa}".format( title1=title1, adresa=adresa ) title.append(title1) desc.append(adresa) page.append(page_line) current_page = 1
Код завершается через несколько секунд, и я не получаю ошибок, но ничего не добавляю ни в один из списков. Я думаю, что это близко, но я не понимаю, в чем здесь проблема.
Ответ №1:
Для каждой итерации вы их аннулируете, это ожидается ?
while current_page lt; 5: . . . title = [] desc = [] page = [] . . . title.append(title1) desc.append(adresa) page.append(page_line) current_page = 1
Подвиньте
title = [] desc = [] page = []
вышел из цикла «время». И ваши приложения не будут аннулированы.
Комментарии:
1. Хороший улов! Не знаю, почему я этого не заметил. Я внес изменения, и результат все тот же; никаких результатов. Я думаю, что проблема здесь: title1 = title.findAll(‘h1’)[0].текст Также, похоже, здесь есть проблема: адрес = title.findAll(‘div’, {‘класс’: ‘бренд-следование-подсказка-корень’})[0].текст