ElementTree(1.3.0)中XML解析的高效方式 Python
我试图解析一个巨大的XML文件,范围为(20MB-3GB).文件是来自不同仪器的样本.因此,我正在做的是从文件中找到必要的元素信息,并将其插入数据库(Django). 我文件样本的一小部分.所有文件中都存在名称空间.文件的有趣功能是它们具有更多的节点属性,然后是文本
2 2023-05-23
编程技术问答社区
使用python编辑html,但lxml将漂亮的html实体转换为奇怪的编码
我正在尝试使用Python(带Pyquery和LXML)来更改和清理一些HTML. Eg. html = " It’s 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
0 2023-05-22
编程技术问答社区
为什么lxml在解析时关闭这个 "ol "标签?
这是一些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,它可能来自
0 2023-05-22
编程技术问答社区
如何在Python中通过匹配字符串提取父HTML标签
我需要通过匹配HTML中的字符串来提取HTML中的父标签. (IE) 我有许多原始的HTML来源.每个源包含文本值" vin:* " **带有某些字符.此文本值(vin:*)以各种格式放置在" "," ".等等中. . 然后,我需要提取所有值以及" vin:*"字符串.这意味着我需要获取其父标签. 例如, Stock Number: Z2079 **VIN: 2T2HK31UX9C110701** Model Code:
0 2023-05-21
编程技术问答社区
管理XPath(lxml)中的引号
我想从给定网站的"一眼制造"表中提取网络元素.但是该行的名称具有'(单引号).这正在干扰我的语法.如何克服这个问题?此代码适用于其他行. 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
4 2023-05-20
编程技术问答社区
通过传递自定义日期输入来解析html内容
我正在从这里解析数据.例如,在网页上,我可以通过选择所需的日期来获取数据.如何解析以获取相同的数据(即昨天)?就像通过自定义日期获取该日期的数据. 解决方案 您可以使用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
0 2023-05-20
编程技术问答社区
Python Lxml。添加和删除标签
我正在尝试在XML树中添加和删除标签(下面的剪辑).我有一个布尔值,我用来确定是否添加或删除标签.如果值是正确的,并且该元素不存在,它将创建标签(如果不存在,则它的父).如果为false,则删除值. 但是,它似乎不起作用,我找不到原因. 27913.769923 5174.627773 P03.png snow.png Dvaered 10.000000 1
0 2023-05-20
编程技术问答社区
如何找到文本的父节点?
如果我使用: 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
0 2023-05-20
编程技术问答社区
我可以使用python、selenium和lxml解析xpath吗?
因此,我一直在尝试弄清楚我们如何使用美丽的小组并进行快速搜索,并发现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('''
0 2023-05-20
编程技术问答社区
lxml cssselect解析
我有一个文档,其中包含以下数据: 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
0 2023-05-20
编程技术问答社区
用lxml xpath进行解析
我试图实现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 实现这一目
12 2023-05-20
编程技术问答社区
用python中的lxml和request包解析xml和html页面
我一直在尝试使用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
0 2023-05-20
编程技术问答社区
如何根据lxml中的孩子来选择父辈?
我有此代码: Something else Something Something else 我想找到表格,但很难定位它(使用了相同的代码,就像10次一样).但是我知道URL中有什么.我该如何获得父桌? 解决方案 如果t是XML的片段的etree,那么您要寻找的链接是 t.xpath('//a[@href = "http://exact url"]')[0] 从那里,您可以使用ancestor轴: 到达table t.
2 2023-05-20
编程技术问答社区
Python XML解析
*注意:LXML不会在我的系统上运行.我希望找到不涉及LXML的解决方案. 我已经浏览了这里的一些文档,并且很难让它起作用.我想解析一些看起来像这样的XML文件: 1375 Key 11375 Key 2Some String Key 3Another string Key 4Yet another string Key 5Strings anyone? 在我试图操纵的文件中,还有更多的" dict"之后.我想
2 2023-05-20
编程技术问答社区
Python。使用`lxml.html`将HTML内容注入标签中
我正在使用lxml.html库来解析HTML文档. 我找到了一个特定的标签,我称之为content_tag,我想更改其内容(即 和之间的文本),而新内容是一个字符串,其中有一些HTML,说是'Hello world!'. 我该怎么做?我尝试了content_tag.text = 'Hello world!',但随后它逃脱了所有的HTML标签,用 This is div. """ div
0 2023-05-20
编程技术问答社区
使用python-HTMLparser或lxml解析HTML表格
我有一个由表组成的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
4 2023-05-20
编程技术问答社区
如何为HTML解析设置XPath查询?
这是一些html代码,来自 Names and Synonyms ↔ Name of Substance `` Acetaldehyde 我写了一个python脚本来帮助我做这样的事情,通过其中一个部分抓住名字,但这只是没有返回名称.我认为这是我的Xpath查询,建议吗? from lxml import html import requests import csv
0 2023-05-20
编程技术问答社区