当前位置: 首页 > 知识库问答 >
问题:

Pylance正在检测PageElement而不是Tag infind_all->ResultSet from美丽汤

慕阳文
2023-03-14

这是一段代码

def prepare_security_questions(self, response: requests.Response) -> dict[str, str]:
    soup = BeautifulSoup(response.text, 'html.parser')

    form: dict[str, Any] = {}

    soup_forms = soup.find_all('form')
    soup_form = None
    for soup_possible_form in soup_forms:
        name = soup_possible_form.get('name')

问题是,当我检查soup_possible_form的类型时,Pylance显示它是一个不正确的PageElement对象,它应该是一个Tag对象,因为name=soup_possible_form.get('name')被标记为错误,因为根据Pylance消息:

无法访问类型为“PageElement”的成员“get”

成员"get"是未知的Pylance(reportGeneralType)

我正在做一个项目,在这个项目中,我大量使用美丽的汤,我不想使用#类型:忽略在每个find_all-


共有1个答案

强化
2023-03-14

好吧,我找到了一个可能的解决方案,我检查了所有以下代码之前每个元素的类型:

for soup_possible_form in soup_forms:
    if not isinstance(soup_possible_form, Tag):
        continue
    
    name = soup_possible_form.get('name')

但我对其他解决方案持开放态度。

 类似资料:
  • 问题内容: 我正在尝试解析一个网站,并通过BeautifulSoup.findAll获取一些信息,但它并没有全部找到。.我正在使用python3 代码是这个 它只打印其中一半… 问题答案: 不同的HTML解析器对损坏的HTML的处理方式不同。该页面提供了损坏的HTML,解析器对此的处理不佳: 标准库在此特定页面上的麻烦较少: 使用将其转换为您的特定代码示例,您将这样指定解析器:

  • Pylance 是一个扩展,可与 Visual Studio Code 中的 Python 一起使用,以提供高性能的语言支持。 Pylance 是以微软的静态类型检查工具 Pyright 作为基础开发的全新的语言服务器,利用类型 stubs(.pyi 文件)和惰性类型推断来提供高性能的开发体验。Pylance 通过丰富的类型信息增强了用户的 Python IntelliSense 体验,可帮助用户

  • 问题内容: 如果我在某个类中有一个很少使用的集合,该集合可能被实例化很多次,则有时我可能会求助于以下“习惯用法”以节省不必要的对象创建: 现在,我想知道是否无法使用来消除这些空检查,但是我将不得不像这样更改if检查: 除了每次都分配一个新的空集合以外,还有更好的方法来处理此问题吗? 编辑: 为了清楚起见,我 想 使用Collections.emptyList(),但是在add()中进行上述检查确实

  • 测量,而不是猜测     于是现在你知道有哪些点可能会影响动画性能,那该如何修复呢?好吧,其实不需要。有很多种诡计来优化动画,但如果盲目使用的话,可能会造成更多性能上的问题,而不是修复。     如何正确的测量而不是猜测这点很重要。根据性能相关的知识写出代码不同于仓促的优化。前者很好,后者实际上就是在浪费时间。     那该如何测量呢?第一步就是确保在真实环境下测试你的程序。 真机测试,而不是模拟

  • 问题内容: 我正在使用Celery管理异步任务。但是,有时候,芹菜加工过程会停止,这不会导致任何任务被执行。我希望能够检查芹菜的状态,并确保一切正常,如果我发现任何问题,请向用户显示错误消息。从Celery Worker文档中看来,我可能可以使用ping或inspect进行此操作,但是ping感觉很笨拙,并且不清楚要使用的检查方式是否确切(如果inspect()。registered()为空?)。

  • 我已经成功地编写了从第一页抓取数据的代码,现在我不得不在这段代码中编写一个循环来抓取下一个“n”页。下面是代码 如果有人能指导/帮助我编写代码,从剩余页面中提取数据,我将不胜感激。 谢谢