草庐IT

python - 如何使用 Python 和 lxml 解析本地 html 文件?

我正在用python处理本地html文件,我正在尝试使用lxml来解析该文件。出于某种原因,我无法正确加载文件,我不确定这是否与我的本地计算机上未设置http服务器、etree使用或其他原因有关。我对此代码的引用是:http://docs.python-guide.org/en/latest/scenarios/scrape/这可能是一个相关问题:Requests:Noconnectionadapterswerefoundfor,errorinPython3这是我的代码:fromlxmlimporthtmlimportrequestspage=requests.get('C:\User

python - BeautifulSoup: 'lxml' 和 'html.parser' 以及 'html5lib' 解析器有什么区别?

使用BeautifulSoup时,“lxml”与“html.parser”和“html5lib”之间有什么区别?您什么时候会使用一个而不是另一个以及每个的好处?当我使用它们时,它们似乎可以互换,但这里的人纠正我说我应该使用不同的。我想加强我的理解;我在这里阅读了几篇关于此的帖子,但它们根本没有详细介绍用途。例子:soup=BeautifulSoup(response.text,'lxml') 最佳答案 来自docs优缺点汇总表:html.parser-BeautifulSoup(markup,"html.parser")优点:包含电

python - 使用 lxml 解析 xml - 提取元素值

假设我们有一个结构如下的XML文件。123456789987123456789987我需要解析:“子字段”的内容(例如上例中的123)和属性值(例如000或001)我想知道如何使用lxml和XPath来做到这一点。下面粘贴了我的初始代码,我恳请有人向我解释如何解析值。importurllib,urllib2fromlxmlimportetreeurl="https://dl.dropbox.com/u/540963/short_test.xml"fp=urllib2.urlopen(url)doc=etree.parse(fp)fp.close()ns={'xsi':'http://w

python - 在 python 3 中解码 base64 字符串(是否使用 lxml)

我知道这看起来非常简单,我想问题是我对所有这些bytes-str-unicode(和encoding-decoding,坦率地说)东西。我一直试图让我的工作代码在Python3上运行。我坚持的部分是当我用lxml解析XML并解码其中的base64字符串时XML。代码现在按以下方式工作:我使用XPath查询'.../binary/text()'检索二进制数据。这会生成一个包含lxml.etree._ElementUnicodeResult对象的单元素列表。然后,使用python2,我能够做到:decoded=source.decode('base64')最后output=numpy.fr

python - Pylint 错误消息 : "E1101: Module ' lxml. etree'没有 'strip_tags' 成员'”

我正在试验lxml和python第一次用于个人项目,我正在尝试striptagsfromabitofsourcecodeusingetree.strip_tags().出于某种原因,我不断收到错误消息:“E1101:模块‘lxml.etree’没有‘strip_tags’成员”。我不确定为什么会这样。这是我的代码的相关部分:fromlxmlimportetree...DOC=etree.strip_tags(DOC_URL,'html')printDOC有什么想法吗?谢谢。 最佳答案 原因是pylint默认onlytrustsCex

python - 使用 lxml 在 python 中编码 - 复杂的解决方案

我需要使用lxml下载和解析网页并构建UTF-8xml输出。我认为伪代码中的模式更具说明性:fromlxmlimportetreewebfile=urllib2.urlopen(url)root=etree.parse(webfile.read(),parser=etree.HTMLParser(recover=True))txt=my_process_text(etree.tostring(root.xpath('/html/body'),encoding=utf8))output=etree.Element("out")output.text=txtoutputfile.write

python - 更改 lxml 中 etree.tostring 的默认缩进

我有一个XML文档,我正在使用lxml.etree.tostring进行pretty-printprintetree.tostring(doc,pretty_print=True)默认的缩进级别是2个空格,我想将其更改为4个空格。tostring函数中没有任何参数;有没有办法用lxml轻松做到这一点? 最佳答案 从4.5版开始,youcansetindentsize使用indent()函数。etree.indent(root,space="")print(etree.tostring(root))

python - 导入错误 : No module named lxml - Even though LXML Is installed

我收到此错误“ImportError:Nomodulenamedlxml”,即使确实安装了LXML。具体来说,它安装在项目的pythonVirtualenv中。最终我正在研究Python/AmazonProductAPI.尝试从终端(mac)运行该项目的示例脚本之一后出现错误。我该如何解决这个问题?或进一步追踪问题?Google搜索引导我:重新编译LXML确保同意Xcode许可证:sudoxcodebuild-license通过以下方式更新LXML:pipinstall--upgradelxml当前版本为3.4.0按照概述重新安装了LXML依赖项here-pipinstalllibxm

java - Clojure 相当于 Python 的 lxml 库?

我正在寻找与Python的lxml库等效的Clojure/Java。我过去经常使用它来解析各种html(作为BeautifulSoup的替代品),而且能够对xml使用相同的elementtreeapi真是太棒了——真的是一个值得信赖的friend!谁能推荐一个类似的Java/Clojure库?关于lxmllxml是一个基于libxml2的xml和html处理库。它可以很好地处理损坏的html页面,因此非常适合屏幕抓取任务。它还实现了ElementTreeapi,因此xml/html结构表示为树对象,完全支持xpath和css选择器等。它还有一些非常方便的实用功能,例如“cleaner”

python - 'lxml.etree._ElementTree' 对象没有属性 'cssselect'

我正在运行python2.7.2我安装了lxml和cssselect我的代码是fromlxmlimportetree,htmlr=html.parse(start_url)all_titles=r.cssselect('span.titles')#shouldreturnalistofresultsall_urls=r.cssselect('span.links')#andthisaswell我正在抓取一个包含标题及其关联链接的网页。但是我遇到了这个错误:'lxml.etree._ElementTree'对象没有属性'cssselect' 最佳答案