Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取属性错误:';非类型';对象没有属性getText_Python_Function_Beautifulsoup_Nonetype - Fatal编程技术网

Python 获取属性错误:';非类型';对象没有属性getText

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)

我写了半段代码从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):
    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


尝试检查您的输入

请修复缩进。