【问题标题】:How to use BeautifulSoup 4 to search for a specific word如何使用 BeautifulSoup 4 搜索特定单词
【发布时间】:2017-05-24 21:46:31
【问题描述】:

我最近安装了 beautifulsoup4 和 lxml,因为我认为它们适用于我正在从事的项目。我已经为此工作了 2 天,但我的主要功能仍然没有解决方案。

我想做的很简单: 1.检查玩家是否在列表中 2.如果玩家在列表中返回“找到”如果没有返回“未找到”

但我无法完成这项工作。

编辑:稍微改变了功能

def FindPlayer(input):
    ## I am trying to look for player in Server Status
    Page = urlopen("http://www.rockmc.com/").read()
    raw = bs4.BeautifulSoup(Page, "lxml")
    HTML = raw.get_text()
    test = raw.find_all(input)
    print(test) ## Debugging
Findplayer("PlayerGuy")

【问题讨论】:

  • 您会在该网站的哪个列表中查找球员? “在线用户”还是“服务器状态”?目前“在线用户”显示“无”,“服务器状态”列出 2 个用户。您要检查哪个?
  • 你需要提供一个minimal reproducible example,而不是仅仅这一个函数。
  • @downshift 我正在尝试寻找处于服务器状态的玩家,但有一些玩家
  • @JohnDoe,该网站似乎通过脚本(Javascript)加载所有内容,并且由于 Beautifulsoup 无法执行 javascript 代码,您可能需要使用 Selenium 或 PhantomJS 之类的东西
  • @downshift 谢谢,我没打到我说这个网站只有javascript

标签: python-3.x beautifulsoup lxml


【解决方案1】:

由于get_text() 返回string,您可以搜索input 以检查它是否是HTML 的子字符串。试试这个:

def FindPlayer(input):
    ## I am trying to look for player in Server Status
    Page = urlopen("http://www.rockmc.com/").read()
    raw = bs4.BeautifulSoup(Page, "lxml")
    HTML = raw.get_text()
    test = ""
    if(HTML.find(input) > -1):
        test = input
    print(test) ## Debugging
Findplayer("PlayerGuy")

【讨论】:

  • 我试过了,我没有收到任何错误,但它也不起作用
【解决方案2】:

我使用 Selenium 来搜索我想要的东西。

【讨论】:

    猜你喜欢
    • 2015-09-15
    • 1970-01-01
    • 2019-01-11
    • 2016-05-20
    • 1970-01-01
    • 2022-12-06
    • 2013-07-03
    • 1970-01-01
    • 2021-10-27
    相关资源
    最近更新 更多