Попытка выполнить цикл по нескольким URL-адресам и импортировать некоторые данные в ПЗУ каждый

#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].текст