首页 > 解决方案 > Python Selenium - 'WebElement'对象不可迭代

问题描述

我正在尝试获取页面上所有帖子的 URL,以便我可以在另一个选项卡中打开它们,有人可以帮忙吗?

def opening(self):
    bot = self.bot
    bot.maximize_window()
    bot.get('https://www.instagram.com/explore/tags/'+hashtag+'/')
    time.sleep(2)

def posts(self):
    bot = self.bot
    hrefs = bot.find_element_by_tag_name('a')
    pic_hrefs = [elem.get_attribute('href') for elem in hrefs]
    pic_hrefs = [href for href in pic_hrefs if hashtag in href]
    time.sleep(1)
    print(hashtag +' pictures: ' + len(pic_hrefs))

我是初学者,所以请不要取笑我,感谢所有帮助的人!

标签: pythonseleniumpost

解决方案


这一行:

hrefs = bot.find_element_by_tag_name('a')

返回一个 selenium web 元素。它不是列表,也不是任何其他可迭代元素。换句话说,您将无法使用for 循环遍历它。打印它,你会看到它是什么。改用这一行,它将返回一个列表。请注意,我添加了一个s

hrefs = bot.find_elements_by_tag_name('a')

还有,你是不是打错字了href?不应该hrefs吗?那里的最后一个实例:

pic_hrefs = [href for href in pic_hrefs if hashtag in href]

推荐阅读