Python 获取属性错误:';非类型';对象没有属性getText
我写了半段代码从RSS提要中提取标题和链接,但它导致了上述错误。获取文本时,两个函数都出现错误。我想去掉输入的标题和链接标签字符串Python 获取属性错误:';非类型';对象没有属性getText,python,function,beautifulsoup,nonetype,Python,Function,Beautifulsoup,Nonetype,我写了半段代码从RSS提要中提取标题和链接,但它导致了上述错误。获取文本时,两个函数都出现错误。我想去掉输入的标题和链接标签字符串 from bs4 import BeautifulSoup import urllib.request import re def getlink(a): a= str(a) bsoup=BeautifulSoup(a) a=bsoup.find('link').getText() return a def gettitle(b)
from bs4 import BeautifulSoup
import urllib.request
import re
def getlink(a):
a= str(a)
bsoup=BeautifulSoup(a)
a=bsoup.find('link').getText()
return a
def gettitle(b):
b=str(b)
bsoup=BeautifulSoup(b)
b=bsoup.find('title').getText()
return b
webpage= urllib.request.urlopen("http://feeds.feedburner.com/JohnnyWebber?format=xml").read()
soup=BeautifulSoup(webpage)
titlesoup=soup.findAll('title')
linksoup= soup.findAll('link')
for i,j in zip(titlesoup,linksoup):
i = getlink(i)
j= gettitle(j)
print (i)
print(j)
print ("\n")
编辑:falsetru的方法非常有效
我还有一个问题。通过执行
getText
,可以从任何标记中提取文本吗 i
,j
是标题
,链接
。你为什么又找到他们
for i, j in zip(titlesoup, linksoup):
print(i.getText())
print(j.getText())
print("\n")
除此之外,如果您解析xml文件,请将features='xml'
传递给BeautifulSoup
soup = BeautifulSoup(webpage, features='xml')
我想问题在这里
def getlink(a):
...
a=bsoup.find('a').getText()
....
记住查找匹配标记名,没有链接
标记,只有标记。如果没有匹配的标记,则BeautifulSoup将从find返回None,因此会出现NoneType错误。详细信息请查看
编辑:
如果您确实要查找文本“link”,可以使用b组.find(text=re.compile('link'))
b=b组.find('title')
返回None
尝试检查您的输入请修复缩进。