функция не возвращает список - PullRequest
0 голосов
/ 29 марта 2019

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

 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 Ответ

0 голосов
/ 29 марта 2019
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 не равен.

Из-за этого

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

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

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