Python TypeError:无法使用minidon和beautifulsoup调用'NoneType'对象

时间:2018-08-13 13:14:19

标签: python web-scraping

我正在尝试使用漂亮的汤和小巧的东西刮擦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,'e​​xec'))中,   命名空间)文件“ 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'对象为   无法通话

1 个答案:

答案 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为字符串格式或文件格式。您为它提供了不接受的对象。因此,您的错误消息。