python – OSError:[Errno 36]文件名太长:
我需要将网页转换为
XML(使用
Python 3.4.3).如果我将URL的内容写入文件,那么我可以完美地阅读和解析它,但如果我尝试直接从网页上读取,我的终端中会出现以下错误:
我的python代码: # AnimeXML.py #! /usr/bin/Python # Import xml parser. import xml.etree.ElementTree as ElementTree # XML to parse. sampleUrl = "http://cdn.animenewsnetwork.com/encyclopedia/api.xml?anime=16989" # Read the xml as a file. content = urlopen (sampleUrl) # XML content is stored here to start working on it. xmlData = content.readall().decode('utf-8') # Close the file. content.close() # Start parsing XML. xml = ElementTree.parse (xmlData) # Get root of the XML file. root = xml.getroot() for info in root.iter("info"): print (info.attrib) 有什么方法可以修复我的代码,以便我可以直接将网页读入python而不会出现此错误吗? 解决方法
正如ElementTree文档的
Parsing XML部分所述:
import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') root = tree.getroot()
root = ET.fromstring(country_data_as_string) 您将整个XML内容作为巨型路径名传递.您的XML文件可能大于2K,或者您的平台的最大路径名大小,因此错误.如果不是,那么你只会得到一个不同的错误,即没有名为[所有内容都在你的XML文件中的第一个/所有内容]. 只需使用 或者,请注意 另请注意该部分的下一行:
所以,你不希望root = tree.getroot(). 所以: # ... content.close() root = ElementTree.fromstring(xmlData) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |