我有一个功能,旨在从网站上输出抓取的元素。但是,当我稍后在脚本中尝试使用该函数时,输出为空。以下相关代码示例:
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输出时,得到的结果为空。
答案 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中没有任何项目。