簡體   English   中英

Python在標簽之間獲取子字符串

[英]Python get substrings inbetween tags

我正在嘗試從Python中的管道獲取數據。 數據的結構如下:

<item><type> data </type><code> data </code><length> data </length><data encoding=“base64”> data </data></item>

如何獲取這些標簽之間的數據? 我已經寫了一個Base64解碼器。

一種方法是使用lxml包並將原始數據視為html

from lxml import html

raw_data = '<item><type> data </type><code> data </code><length> data </length><data encoding=“base64”> data </data></item>'
html_data = html.fromstring(raw_data)

data = html_data.xpath('//text()')

# data = [' data ', ' data ', ' data ', ' data ']

可能有點矯kill過正,另一種方法是使用正則表達式

https://kevin.deldycke.com/2008/07/python-ultimate-regular-expression-to-catch-html-tags/復制的模式

import re

def get_data(text):
    pattern = "(?i)<\/?\w+((\s+\w+(\s*=\s*(?:\".*?\"|'.*?'|[^'\">\s]+))?)+\s*|\s*)\/?>"
    return re.sub(p, '', text).split()

text = '<item><type> data </type><code> data </code><length> data </length><data encoding=“base64”> data </data></item>'
print(get_data(text))

# ['data', 'data', 'data', 'data']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM