В оболочке вы можете анализировать HTML , используя:
hxselect
из html-xml-utils
package vim
/ ex
(который может легко перепрыгнуть между html-тегами ), например: удаление метки стиля с помощью внутреннего кода: $ curl -s http://example.com/ | ex -s +'/
grep
, например: извлечение внешнего html файла H1: $ curl -s http://example.com/ | grep -o '.*
'
Example Domain
извлечение тела: $ curl -s http://example.com/ | tr '\n' ' ' | grep -o '.*'
Example Domain
...
-
html2text
для простого синтаксического анализа текста: например, таблицы синтаксического анализа : $ html2text foo.txt | column -ts'|'
- с использованием
xpath
(XML::XPath
perl-модуля), см. здесь пример - perl или Python (см. пример @Gilles )
- для разбора нескольких файлов одновременно, см. Как разбирать сотню html файлы исходного кода в оболочке?
Связанный (почему вы не должны использовать регулярное выражение):
0
задан Andr Fabin Castellanos Aldama 17 March 2019 в 20:33
поделиться
Вы не можете использовать знак минус (дефис) с естественным именованием, потому что это недопустимый символ в качестве имени переменной Python (group-1
и dataset-1
выглядят как операция вычитания!)
Why-Python-not-allow-дефис
Если у вас есть группы и наборы данных, которые используют это соглашение об именах, вам придется использовать file.get_node()
способ доступа к ним. Вот простой фрагмент кода для демонстрации. Первая часть создает 2 группы и таблицы (наборы данных). # 1 использует _
, а # 2 использует -
в именах групп и таблиц. Вторая часть обращается к набору данных № 1 с помощью Natural Naming, а к набору данных № 2 - с помощью file.get_node()
import tables as tb
import numpy as np
# Create h5 file with 2 groups and datasets:
# '/group_1', 'ds_1' : Natural Naming Supported
# '/group-2', 'ds-2' : Natural Naming NOT Supported
h5f = tb.open_file('SO_55211646.h5', 'w')
h5f.create_group('/', 'group_1')
h5f.create_group('/', 'group-2')
mydtype = np.dtype([('a',float),('b',float),('c',float)])
h5f.create_table('/group_1', 'ds_1', description=mydtype )
h5f.create_table('/group-2', 'ds-2', description=mydtype )
# Close, then Reopen file READ ONLY
h5f.close()
h5f = tb.open_file('SO_55211646.h5', 'r')
testds_1 = h5f.root.group_1.ds_1.read()
print (testds_1.dtype)
# these aren't valid Python statements:
#testds-2 = h5f.root.group-2.ds-2.read()
#print (testds-2.dtype)
testds_2 = h5f.get_node('/group-2','ds-2').read()
print (testds_2.dtype)
h5f.close()