我有一个脚本,它应该从XML文件中从URL列表中提取一些术语。所有URL都提供对XML数据的访问。
它一开始很好地打开、解析和提取,但是在处理过程中被一些XML文件打断,出现了以下错误:
File "<stdin>", line 18, in <module>
File "lxml.etree.pyx", line 2953, in lxml.etree.parse (src/lxml/lxml.etree.c:56204)
File "parser.pxi", line 1555, in lxml.etree._
我的目标是从xml文档(链接)中提取urls,并将它们放在列表中:
我从etree中导入了lxml,并创建了一个从所有<instanceUrl>标记中提取文本的列表理解器。
url = 'https://valuespreadsheet.com/iedgar/results.php?stock=NFLX&output=xml'
et = etree.fromstring(urlopen(url).read())
return [_.find('instanceUrl').text for _ in et.find('filings&
我在Mac上使用Python 2.7.3,并安装了lxml版本3.3.3。我在同一个目录中有几个xml文件,例如MyDir/file1.xml和MyDir/file2.xml。我正在尝试将每一个都引入python,并提取相关信息。但是,我似乎无法让etree解析器工作。我的代码非常简单:
from lxml import etree
from os import listdir
from os.path import isfile, join
xmlfiles = [x for x in listdir("MyDir") if isfile(join("MyD
我正在使用bs4和Python3.5解析维基百科元数据文件
这适用于从(大得多的)文件的测试片中提取:
from bs4 import BeautifulSoup
with open ("Wikipedia/test.xml", 'r') as xml_file:
xml = xml_file.read()
print(BeautifulSoup(xml, 'lxml').select("timestamp"))
问题是元数据文件都是gzcat文件,所以我希望让BeautifulSoup作为迭代器读取数据(甚至可以从1
我试图从几个1000个XML文件中提取数据,并从其中构建一个df。
到目前为止,我所掌握的代码是用于单个XML提取的。
from lxml import etree
import pandas as pd
serial = ["S1.xml"]
content = serial.encode('utf-8')
doc = etree.XML(content)
targets = doc.xpath('/reiXmlPrenos')
data = []
for target in targets:
data.append(target
我正在编写使用ElementTree从xml文件中提取文本的代码,但是我发现lxml提供了更方便的xpath特性。所以我想知道如何在lxml中重写这一行
if x.nodeName == 'a:pPr' and x.getAttribute('lvl') == '2' and x.hasAttribute('marL') == False:
目前我被建议使用这个..
'/p:sld/p:cSld/p:spTree/p:sp/p:nvSpPr/p:nvPr/x[@type="body" and @sz=
我对与xml、python和抓取数据交互非常陌生,所以请原谅我:我有一个xml文件,其中保存了从evernote中保存的笔记。我已经能够将BeautifulSoup和lxml加载到我的python环境中。我还能够加载xml文件并打印
这是我的代码,直到打印:
from bs4 import BeautifulSoup
from xml.dom.minidom import parseString
file = open('myNotes.xml','r')
data = file.read()
dom = parseString(data)
print data
使用xml框架,是直接从指向在线lxml.etree文件的链接解析xml更有效,还是使用不同的框架(如urllib2)返回一个字符串,然后从中解析更好?或者这根本没有什么不同?
方法1-直接从链接解析
from lxml import etree as ET
parsed = ET.parse(url_link)
方法2-从字符串解析
from lxml import etree as ET
import urllib2
xml_string = urllib2.urlopen(url_link).read()
parsed = ET.parse.fromstring(xml_string
xpath可用于从python文件中提取文本(例如,使用xpath),而不必完全解析lxml。例如,我可以执行以下比BeautifulSoup更快的操作,特别是对于大输入。我希望有一些JSON的等效代码。
from lxml import etree
tree = etree.XML('<foo><bar>abc</bar></foo>')
print type(tree)
r = tree.xpath('/foo/bar')
print [x.tag for x in r]
我看到了。但是我没有看到一个示例pyt