TypeError:'ResultSet'对象不可调用 - 带有BeautifulSoup的Python
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TypeError:'ResultSet'对象不可调用 - 带有BeautifulSoup的Python相关的知识,希望对你有一定的参考价值。
这里是python的新手,并且在尝试设置一些代码来从网页列表中删除数据时仍然遇到错误。
其中一个页面的链接是 - 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(最近一次调用最后一次):
文件“”,第3行,汤=汤(page.text,'html.parser')
TypeError:'ResultSet'对象不可调用
不知道为什么我收到此错误。我尝试查看Stack Overflow上的其他页面,但似乎没有任何类似的错误。
问题是您有名称冲突,因为您以多种方式使用相同的名称。因此,你的soup
设置为BeautifulSoup
汤对象,但然后被重用为同一个对象。
试试这个:
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中的标准约定是类应该是正确的情况。我是ClassOne
和BeautifulSoup
。类的实例应该是小写的,即class
和soup
。这有助于避免名称冲突,但它也使您的代码更直观。一旦你学会了这一点,就可以更容易地阅读代码并编写干净的代码。
以上是关于TypeError:'ResultSet'对象不可调用 - 带有BeautifulSoup的Python的主要内容,如果未能解决你的问题,请参考以下文章
TypeError: 'str' object is not callable
关于resultset 的deleteRow方法报无效的游标位置的错误