首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >BeautifulSoup TypeError

BeautifulSoup TypeError
EN

Stack Overflow用户
提问于 2018-02-06 03:09:03
回答 1查看 793关注 0票数 1

我遇到了BeautifulSoup (更具体地说是xml解析器)的一个问题,在这个问题中,将"name“作为标记属性似乎会重载一些底层函数。

考虑到以下代码:

代码语言:javascript
运行
复制
#!/usr/bin/env python3

from bs4 import BeautifulSoup

siteconfig="""
<?xml version="1.0" encoding="utf-8"?>
<sites version="180201">
  <site name="au" location="oceana">
    <addresslist="IPv4">
      <address>192.168.1.10/32</address>
      <address>192.168.2.10/32</address>
    </addresslist>
    <addresslist="IPv6">
      <address>fc00:07bc:5ae6:75d0::26/128</address>
      <address>fc00:07bc:5ae6:75d1::26/128</address>
    </addresslist>
  </site>
  <site name="us" location="americas">
    <addresslist="IPv4">
      <address>192.168.4.13/32</address>
      <address>192.168.5.13/32</address>
    </addresslist>
    <addresslist="IPv6">
      <address>fc00:07bc:5ae6:75d0::45/128</address>
      <address>fc00:07bc:5ae6:75d1::45/128</address>
    </addresslist>
  </site>
</sites>
"""
soup = BeautifulSoup(siteconfig,"xml")
print(soup.find("site", name="us"))

我得到以下错误:

代码语言:javascript
运行
复制
Traceback (most recent call last):
  File "./siteConfig.py", line 33, in <module>
    print(soup.find("site", name="us"))
TypeError: find() got multiple values for argument 'name'

但如果我把最后一行改为:

代码语言:javascript
运行
复制
print(soup.find("site", location="americas"))

我得到以下输出:

代码语言:javascript
运行
复制
<site location="americas" name="us">
  <addresslist>="IPv4"&gt;
    <address>192.168.4.13/32</address>
    <address>192.168.5.13/32</address>
  </addresslist>
  <addresslist>="IPv6"&gt;
    <address>fc00:07bc:5ae6:75d0::45/128</address>
    <address>fc00:07bc:5ae6:75d1::45/128</address>
  </addresslist>
</site>

为什么会发生这种情况?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-06 03:13:43

namefind的第一个参数的名称(在您的例子中,是"site"):

查找bs4.BeautifulSoup实例的(name=None,attrs={},recursive=True,text=None,**kwargs)方法

使用属性字典soup.find("site", {"name":"us"})来避免冲突。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48634867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档