функция не возвращает список

#python #beautifulsoup

#python #beautifulsoup

Вопрос:

У меня есть функция, которая предназначена для вывода очищенных элементов с веб-сайта. Однако, когда я пытаюсь использовать функцию позже в моем скрипте, вывод оказывается пустым. Соответствующий пример кода ниже:

  def main(self):

    links = [a, b, c]
    self.soup_items = get_soup_items(links)      

 def get_soup_items(self, links):

    item_list = []
    for link in links:
        browser = webdriver.Chrome("path_to_chromedriver", chrome_options=chrome_options)
        browser.get(link)
        time.sleep(3)
        page_req = browser.page_source
        soup = BeautifulSoup(page_req, "html.parser")
        soupitems = soup.findAll("div", {"class": "content"})
        item_list.apppend(soupitems)

    return item_list


def get_objects(self):

    for item in self.soup_items:
             item_1 = item.find("span", {"class": "a"})
             print(item_1)
  

Желаемый результат заключается в том, чтобы get_soup_items возвращал soupitems. Однако в функции get objects, когда я пытаюсь выполнить итерацию по выводу get_soup_items, я получаю пустой результат.

Комментарии:

1. Обратитесь за помощью к этому прекрасному блогу debug . Вы не продемонстрировали, что вам действительно есть что добавить к этому списку.

Ответ №1:

 for link in links:
    browser = webdriver.Chrome("path_to_chromedriver", chrome_options=chrome_options)
    browser.get(link)
    time.sleep(3)
    page_req = browser.page_source
    soup = BeautifulSoup(page_req, "html.parser")
    soupitems = soup.findAll("div", {"class": "content"})
    item_list = item_list   soupitems
  

Ваш код никогда ничего не добавляет к item_list, так что либо вы не попадаете в цикл for, либо soupitems — это none.

Из-за этого

    for item in self.soup_items:
             item_1 = item.find("span", {"class": "a"})
             print(item_1)
  

ваш цикл for each выполняться не будет, потому что в self.soup_items нет элементов.