函数不返回列表

时间:2019-03-29 20:29:33

标签: 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返回汤项的输出。但是,在get objects函数中,当我尝试遍历get_soup_items输出时,得到的结果为空。

1 个答案:

答案 0 :(得分:0)

arduinoData = ser.readline().decode('utf-8')
if arduinoData:
    data = arduinoData.split("\t")

    a = data[0]
    b = data[1]
    c = data[2]
    d = data[3]

您的代码永远不会在item_list中添加任何内容,因此您要么不会进入for循环,要么soupitems都不会。

因此

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

您的每个循环都将无法运行,因为self.soup_items中没有任何项目。