TypeError:“ResultSet”对象不是可调用的Python with beauthulsoup

2024-09-30 14:24:50 发布

您现在位置:Python中文网/ 问答频道 /正文

这里是python的新手,在尝试设置一些代码以从web页面列表中获取数据时,总是遇到错误。在

其中一个页面的链接是-https://rspo.org/members/2.htm 我正试图在那里获取诸如“会员号码”、“类别”、“行业”、“国家”等信息,并将其全部导出到电子表格中。在

代码:

from bs4 import BeautifulSoup as soup
from urllib.request import urlopen
import requests

pages = []

for i in range(1, 10):
    url = 'https://rspo.org/members/' + str(i)
    pages.append(url)


for item in pages:
    page = requests.get(item)
    soup = soup(page.text, 'html.parser')
    member = soup.find_all("span", {"class":"current"})

我得到以下错误:

Traceback (most recent call last):

File "", line 3, in soup = soup(page.text, 'html.parser')

TypeError: 'ResultSet' object is not callable

不知道我为什么会犯这个错误。我试着查看堆栈溢出的其他页面,但似乎没有任何页面与上面的页面有类似的错误。在


Tags: 代码infromhttpsorgimportfor错误
1条回答
网友
1楼 · 发布于 2024-09-30 14:24:50

问题是,您有一个名称冲突,因为您在多种方式使用相同的名称。因此,您的soup设置为一个BeautifulSoupsoup对象,但随后将作为同一对象重用。在

试试这个:

from bs4 import BeautifulSoup
from urllib.request import urlopen
import requests

pages = []

for i in range(1, 10):
    url = 'https://rspo.org/members/' + str(i)
    pages.append(url)


for item in pages:
    page = requests.get(item)
    soup = BeautifulSoup(page.text, 'html.parser')
    member = soup.find_all("span", {"class":"current"})

请注意,我刚刚从BeautifulSoup中删除了别名。我采取这种方法的原因很简单。Python中的标准约定是类应该是正确大小写的。一、 eClassOne和{}。类的实例应该是小写的,即class和{}。这有助于避免名称冲突,但也使代码更直观。一旦你学会了这一点,阅读代码和编写干净的代码就变得容易多了。在

相关问题 更多 >