我试图解析一个巨大的XML文件,范围为(20MB-3GB).文件是来自不同仪器的样本.因此,我正在做的是从文件中找到必要的元素信息,并将其插入数据库(Django). 我文件样本的一小部分.所有文件中都存在名称空间.文件的有趣功能是它们具有更多的节点属性,然后是文本
以下是关于 lxml 的编程技术问答
我正在尝试使用Python(带Pyquery和LXML)来更改和清理一些HTML. Eg. html = "
Its a spicy meatball!" lxml.html.clean函数,clean_html(),效果很好,除了它替换了 之类的nice html实体 有一些Unicode String \xc2\x92 在不同的浏览器(使用自动编码,UTF8,Latin-1等)中,Unicode看起来很奇怪,就像一个空盒子一样.如何停止LXML转换实体?如何在拉丁-1编码中获得所有内容?似乎很奇怪的是,专门为HTML构建的模块会这样做. 我不能确定哪个字符在那里,所以我不能只使用 replace("\xc2\x92",""). 我尝试使用 clean_html(html).encod
这是一些html:
item
和一些带有lxml的Python 3代码将其解析并重新印刷: import sys from lxml import etree, html document_root = html.fromstring(sys.stdin.read()) print(etree.tostring(document_root, encoding='unicode')) 这是输出:
item
在输出中,lxml在ul开始之前关闭ol,这更改了列表结构. 为什么这样做? 我可以以保留列表结构的方式获得lxml解析html吗? edit :请注意,如果我替换ul ol(
item
),或者如果我替换ol ol(ul)(ul)( 我无法控制HTML,它可能来自
我想从给定网站的"一眼制造"表中提取网络元素.但是该行的名称具有'(单引号).这正在干扰我的语法.如何克服这个问题?此代码适用于其他行. import requests from lxml import html, etree ism_pmi_url = 'https://www.instituteforsupplymanagement.org/ismreport/mfgrob.cfm?SSO=1' page = requests.get(ism_pmi_url) tree = html.fromstring(page.content) PMI_CustomerInventories = tree.xpath('//strong[text()="Customers' Inventories"]/../../following-sibling::td/p/text()') PMI_CustomerInventories_Curr_Val = PMI_CustomerInvento
我正在从这里解析数据.例如,在网页上,我可以通过选择所需的日期来获取数据.如何解析以获取相同的数据(即昨天)?就像通过自定义日期获取该日期的数据. 解决方案 您可以使用Selenium或使用该站点的AJAX API. 这是后者的示例: def get_by_date(date): url = 'https://markets.ft.com/data/world/ajax/getnextecoevents?startDate=' + date r = requests.get(url) return r.json()['html'] date应格式化为yyyy-mm-dd,例如:" 2017-07-20" 使用上述函数,bs4刮擦表内容: html = get_by_date('2017-06-20') soup = BeautifulSoup(html, 'html.parser') data = [[td.text for td
如果我使用: import requests from lxml import html response = request.get(url='someurl') tree = html.document_fromstring(response.text) all_text = tree.xpath('//text()') # which give all text from page 在此all_text列表中,我们从页面上拥有所有文本.现在我想知道是否: text_searched = all_text[all_text.index('any string which is in all_text list')] 是否可以搜索文本的Web元素? 解决方案 您可以将 getparent() 方法用于此目的: ..... ..... all_text = tree.xpath('//text()') first_text = all_t
因此,我一直在尝试弄清楚我们如何使用美丽的小组并进行快速搜索,并发现LXML可以解析HTML页面的XPATH.如果我能做到的话,我会很喜欢,但是教程不是直观的. 我知道如何使用firebug抓住XPath,并好奇是否有人使用LXML,可以解释如何使用它来解析特定的Xpath,并打印它们..说每行5. ?! Selenium正在使用Chrome并正确加载页面,只需要帮助前进. 谢谢! 解决方案 lxml的ElementTree具有.xpath()方法(请注意,Python Distribution中的xml软件包中的elementTree dosent中有一个!) 例如. # see http://lxml.de/xpathxslt.html from lxml import etree # root = etree.parse('/tmp/stack-overflow-questions.xml') root = etree.XML('''
我有一个文档,其中包含以下数据:
1. A domesticated carnivorous mammal (Canis familiaris) related to the foxes and wolves and raised in a wide variety of breeds. 我想在类ds-list中获得所有内容(没有和标签).目前,我的代码是doc.cssselect('div.ds-list'),但是所有这些都是之前的newline.我该如何让这个做我想做的事? 解决方案 也许您正在寻找text_content方法?: import lxml.html as lh content='''\
1. A domesticated ca
我试图实现lxml, xpath代码以从链接中解析HTML:https://www.theice.com/productguide/ProductSpec.shtml?specId=251 具体来说,我试图在页面末端附近解析表. 我想在该子表中获取文本,例如:"纽约"和旁边列出的时间(对伦敦和新加坡做同样的时间). 我有以下代码(无法正常工作): doc = lxml.html.fromstring(page) tds = doc.xpath('//table[@class="last"]//table[@id"tradingHours"]/tbody/tr/td/text()') 与美丽的人: table = soup.find('table', attrs={'id':'tradingHours'}) for td in table.findChildren('td'): print td.text 实现这一目
我一直在尝试使用python中的LXML和请求软件包来解析XML和HTML页面.我为此目的使用以下代码: 在Python中: import requests import lxml.etree url = "" req = requests.get(url) tree = html.fromstring(req.content) root = tree.xpath('') for item in root: print(item.text) 此代码正常工作,但是对于某些网页,无法正确显示其内容,需要设置编码UTF-8,但我不知道如何在此代码中添加集合编码 解决方案 requests自动解码服务器的内容. 重要的是: r.content - 包含尚未解码的响应内容 r.encoding - 包含有关编码响应内容 的信息 r.text - 根据按照Unicode标准,我习惯了r.text,但您仍然可以使用 手动解码您的内容 r.co
我有一个由表组成的HTML页面,我想在该表中获取所有值,tr中的所有值. 我曾尝试与Beautifulsoup合作,但现在我想与Python一起使用LXML或HML解析器. 我附上了示例. 我想将值作为元组列表作为 [ [( value of 2050 jan, value of main subject-part1-sub part1-subject1 ), ( value of 2050 feb, value of main subject-part1-sub part1-subject1 ),... ], [( value of 2050 jan, value of main subject-part1-sub part1-subject2 ), ( value of 2050 feb, value of main subject-part1-sub part1-subject2 )... ] ] 等等. 任何人都可以让我知道如何使用LXML或HTML P