Python Selenium-如何提取/排除论坛帖子中的特定标记或元素?

Python Selenium-如何提取/排除论坛帖子中的特定标记或元素?,python,selenium,Python,Selenium,我已经为一个论坛游戏构建了一个网络爬虫,在这个游戏中,玩家使用[b]粗体[/b]标签中的特定关键字来发布他们的命令。机器人的工作是遍历线程并记录所有玩家的命令,但是我遇到了一个问题,如果玩家a引用了玩家B的帖子,机器人会在引用中读取玩家B的命令并更新玩家a的表 我已经找到了quote框的特定类名,但我不知道如何从整个帖子正文中删除该类 我尝试使用get_属性('innerHTML')将文章转换为文本,并使用regex成功删除了它,但是我编写的用于提取粗体标记(find_attribute_by_

我已经为一个论坛游戏构建了一个网络爬虫,在这个游戏中,玩家使用[b]粗体[/b]标签中的特定关键字来发布他们的命令。机器人的工作是遍历线程并记录所有玩家的命令,但是我遇到了一个问题,如果玩家a引用了玩家B的帖子,机器人会在引用中读取玩家B的命令并更新玩家a的表

我已经找到了quote框的特定类名,但我不知道如何从整个帖子正文中删除该类

我尝试使用get_属性('innerHTML')将文章转换为文本,并使用regex成功删除了它,但是我编写的用于提取粗体标记(find_attribute_by_tag_name)的代码变得无效

我有两个问题要问张贴在这里的天才们:

  • 有没有办法从帖子正文中删除特定元素?我搜索了整个谷歌,没有找到一个有效的解决方案

  • 否则,有没有办法将从get_属性(“innerHTML”)获取的HTML转换回元素

  • Selenium没有用于删除元素的内置方法。但是,您可以执行一些javascript代码来删除引号框元素。见相关问题,网址:
  • 这段代码将删除所有类名为quoteBox的元素,我认为如果您只更改类名,这将对您有效

        driver.execute_script('''
            var element = document.getElementsByClassName("quoteBox"), index;
            for (index = element.length - 1; index >= 0; index--) {
                element[index].parentNode.removeChild(element[index]);
            }
        ''')
    
  • 同样的答案-没有内置的方法,但可以使用javascript。这种方法可能比第一种方法复杂得多
  • Selenium没有用于删除元素的内置方法。但是,您可以执行一些javascript代码来删除引号框元素。见相关问题,网址:
  • 这段代码将删除所有类名为quoteBox的元素,我认为如果您只更改类名,这将对您有效

        driver.execute_script('''
            var element = document.getElementsByClassName("quoteBox"), index;
            for (index = element.length - 1; index >= 0; index--) {
                element[index].parentNode.removeChild(element[index]);
            }
        ''')
    
  • 同样的答案-没有内置的方法,但可以使用javascript。这种方法可能比第一种方法复杂得多
    谢谢,这很有效。运行此脚本时需要记住的一点是,它将从整个web片段中删除quote类的所有元素。脚本不能直接在单个元素(如帖子)上调用,但是出于我的目的,这很好。谢谢,这很好。运行此脚本时需要记住的一点是,它将从整个web片段中删除quote类的所有元素。脚本不能直接在单个元素(如post)上调用,但是出于我的目的,它可以正常工作。