我正在尝试使用漂亮的汤和小巧的东西刮擦xml,但在python中却出现错误。
下面是我的代码和错误。
代码:
import xml.dom.minidom
import bs4 as bs
import urllib.request
source = urllib.request.urlopen('somelink.xml').read()
soup = bs.BeautifulSoup(source,'lxml')
doc = xml.dom.minidom.parse(soup)
错误:
回溯(最近一次通话最近):文件“”,第1行, inrunfile('D:/ NLTK / Rwire接口/untitled0.py',wdir ='D:/ NLTK / Rwire 接口')文件 “ C:\ ProgramData \ Anaconda3 \ lib \ site-packages \ spyder_kernels \ customize \ spydercustomize.py”, 第678行,位于runfileexecfile(文件名,名称空间)文件中 “ C:\ ProgramData \ Anaconda3 \ lib \ site-packages \ spyder_kernels \ customize \ spydercustomize.py”, 第106行,在execfileexec(compile(f.read(),filename,'exec'))中, 命名空间)文件“ D:/ NLTK / Rwire接口/untitled0.py”,第13行,indoc = xml.dom.minidom.parse(soup)文件“ C:\ ProgramData \ Anaconda3 \ lib \ xml \ dom \ minidom.py”,行1958,在 parsereturn expatbuilder.parse(file)文件 “ C:\ ProgramData \ Anaconda3 \ lib \ xml \ dom \ expatbuilder.py”,行913,在 parseresult = builder.parseFile(file)文件 “ C:\ ProgramData \ Anaconda3 \ lib \ xml \ dom \ expatbuilder.py”,第204行,在 parseFilebuffer = file.read(16 * 1024)TypeError:'NoneType'对象为 无法通话
答案 0 :(得分:0)
您的数据已经解析,如下所示:
import xml.dom.minidom
import bs4 as bs
import urllib.request
source = urllib.request.urlopen('somelink.xml').read()
soup = bs.BeautifulSoup(source,'lxml') #Soup has parsed data
doc = xml.dom.minidom.parse(source) #Doc has parsed data
xml.dom.minidom.parse()期望xml为字符串格式或文件格式。您为它提供了不接受的汤对象。因此,您的错误消息。