{ "info": { "author": "dli", "author_email": "286264978@qq.com", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Environment :: Web Environment", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "Intended Audience :: System Administrators", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": ".. image:: ./images/logo.png\n :target: https://pypi.python.org/pypi/nvhtml\n :alt: nvhtml PyPi Home Page\n\n======\nReadMe\n======\n\n\n.. image:: ./images/pypi.png\n :target: https://pypi.python.org/pypi/nvhtml\n :alt: Pypi Python Package Index Status\n\n.. image:: ./images/rdocs.png\n :target: https://nvhtml.readthedocs.io/en/latest\n :alt: Documentation Status\n\n\n`Installation `_\n-----------------------------------------------------------------------\n ::\n \n $ pip3 install nvhtml\n\n- refer to `Installation `_\n\n\n\n`Documentation `_\n------------------------------------------------\n\n- refer to https://nvhtml.readthedocs.io\n\nLicense\n-------\n\n- MIT\n\n\n\n`Quickstart `_\n--------------------------------------------------------------\n- refer to `Usage `_\n\n\nFeatures\n--------\n\n- search html via tags-pathlist \n- search html via breadth,depth\n- search html via tag\n- width first traverse html \n- description matrix of html\n- depth first traverse html (sax)\n- beautify html\n- get html node via relationship:\n - ancestor,descendants,parent,grand-parent,children,\n - siblings,lsib,rcib,preceding-sib,following-sib,\n - lcin,rcin\n\n\nReferences\n----------\n\n* elist\n\n * https://github.com/ihgazni2/elist\n\n* mlconjug(for docs template format)\n\n * https://github.com/SekouD/mlconjug/tree/master/docs\n\n\n\n\n\n============\nInstallation\n============\n\n\nFrom pip\n--------------\n\nTo install nvhtml, run this command in your terminal:\n\n.. code-block:: console\n\n $ pip3 install nvhtml\n\n\nFrom sources\n------------\n\nThe sources for nvhtml can be downloaded from the github repo:\n\n\n.. code-block:: console\n\n $ git clone git@github.com:ihgazni2/nvhtml.git\n\n\nOnce you have a copy of the source, you can install it with:\n\n.. code-block:: console\n\n $ python setup.py install\n\n=====\nUsage\n=====\n\nCommand Line\n------------\n\nrshtml write rule\n^^^^^^^^^^^^^^^^^\n:\\# pound: `comment`\n:\\- dash: `attrib`\n:\\. dot: `text and tail`\n:\\| vbar: `text and tail content can multiline`\n\n\nrshtml\n^^^^^^\n\n ::\n\n NVHTML-BENCH# cat tstrs.rshtml\n html\n head\n meta\n -http-equiv X-UA-Compatible\n -content IE=edge,chrome=1\n meta\n -name viewport\n -content user-scalable=yes, initial-scale=1.0, minimum-scale=1.0, maximum-scale=3.0\n link\n body\n div\n -id menu-item-27961\n -class qtranxs-lang-menu-item menu-item-object-custom\n .text\n |hello\n |hihihi\n .tail\n |this is a tail\n li\n div\n li\n div\n #comment\n .text\n |this is acomment\n NVHTML-BENCH#\n\n\n NVHTML-BENCH# nvhtml_rsh2html -input tstrs.rshtml\n \n NVHTML-BENCH# ls -l | egrep tstrs.rshtml\n -rw-r--r-- 1 root root 597 Aug 19 11:36 tstrs.rshtml\n -rw-r--r-- 1 root root 658 Aug 19 11:56 tstrs.rshtml.html\n \n \n \n NVHTML-BENCH# cat tstrs.rshtml.html\n \n \n \n \n \n \n \n \n \n \n
\n hello\n hihihi\n
  • \n
  • \n
    \n this is a tail\n
    \n
  • \n
  • \n
    \n
    \n
    \n \n \n \n NVHTML-BENCH#\n \n \n \n vice versa\n NVHTML-BENCH# nvhtml_html2rsh -input tstrs.html\n\nvertical show\n^^^^^^^^^^^^^\n \nwith color\n~~~~~~~~~~\n\n ::\n \n NVHTML-BENCH# nvhtml_struct_show -input disp.html\n color: True\n --------------------------\n | html |\n --------------------------\n | head | body |\n --------------------------\n | | div | div |\n --------------------------\n | | | div | div |\n --------------------------\n\n\n.. image:: ./images/nvhtml_struct_show.0.png\n\n\nno color\n~~~~~~~~\n\n ::\n\n #if two big, disable color , and open it in editor such as notepad ++\n NVHTML-BENCH# nvhtml_struct_show -input opis.html -color \"no\" > html_txt_tb\n \n.. image:: ./images/nvhtml_struct_show.1.png\n\n\nnvrsh_struct_show\n~~~~~~~~~~~~~~~~~~\n \n ::\n \n TEST# nvrsh_struct_show -input jobj2.rshtml\n color: True\n -------------------------------\n | html |\n -------------------------------\n | body |\n -------------------------------\n | im-dict-root |\n -------------------------------\n | l | t | s |\n -------------------------------\n | o0 | o1 | o0 | o1 | u0 | u1 |\n -------------------------------\n | a0 | a1 | t0 | t1 | s0 | s1 |\n -------------------------------\n\n\n NVHTML# cat TEST/jobj2.rshtml\n im-dict-root\n l\n o0\n a0\n o1\n a1\n t\n o0\n t0\n o1\n t1\n s\n u0\n s0\n u1\n s1\n NVHTML# \n \n\nbeautify\n^^^^^^^^\n \n ::\n\n nvhtml_beauty -input opis.html\n vim opis.html.out.html\n \n # nvhtml_beauty -h\n usage: nvhtml_beauty [-h] [-input INPUT_HTML_FILE] [-output OUTPUT_HTML_FILE] [-codec INPUT_CODEC]\n\n optional arguments:\n -h, --help show this help message and exit\n -input --input_html_file input html file name\n -output --output_html_file output html file name\n -codec --input_codec input html file codec\n\n\n\n\n\nsearch with loc\n^^^^^^^^^^^^^^^\n \n ::\n \n NVHTML-BENCH# nvhtml_loc -h\n usage: nvhtml_loc [-h] [-input INPUT_HTML_FILE] [-codec INPUT_CODEC]\n [-loc MAT_LOC]\n \n optional arguments:\n -h, --help show this help message and exit\n -input --input_html_file input html file name\n -codec --input_codec input html file codec\n -loc --mat_loc depth,breadth\n\n\n NVHTML-BENCH# nvhtml_loc -input opis.html -loc 11,2\n <------json-----\n {\n 'pl':\n [\n 'html',\n 'body',\n 'div',\n 'div',\n 'header',\n 'div',\n 'nav',\n 'div',\n 'ul',\n 'li',\n 'ul',\n 'li'\n ],\n 'breadth': 2,\n 'depth': 11,\n 'pbreadth': 2,\n 'samepl_sibseq': 0,\n 'samepl_breadth': 0,\n 'tag': 'li',\n 'sibseq': 0,\n 'attrib':\n {\n 'id': 'menu-item-22951',\n 'class': 'menu-item menu-item-type-post_type menu-item-object-page menu-item-22951'\n },\n 'text': None,\n 'tail': '\\n\\t',\n 'text_intag': ''\n }\n ------json---->\n \n <----------html--------------\n
  • \n \n \n Presentation\n \n \n
  • \n \n <----------html--------------\n\n\n\n \ntag search with depth\n^^^^^^^^^^^^^^^^^^^^^\n \n ::\n \n NVHTML-BENCH# nvhtml_tag -h\n usage: nvhtml_tag [-h] [-input INPUT_HTML_FILE] [-codec INPUT_CODEC]\n [-tag HTML_TAG] [-which WHICH_TAG]\n [-sdepth START_LEVEL_DEPTH] [-edepth END_LEVEL_DEPTH]\n \n optional arguments:\n -h, --help show this help message and exit\n -input --input_html_file input html file name\n -codec --input_codec input html file codec\n -tag --html_tag html tag for search\n -which --which_tag sequence of tag-array\n -sdepth --start_level_depth start level depth\n -edepth --end_level_depth end level depth\n NVHTML-BENCH#\n\n NVHTML-BENCH# nvhtml_tag -input opis.html.out.html -tag img -sdepth 3 -edepth 6\n \"Twitter\"\n \n \n \"Facebook\"\n \n \n \"Twitter\"\n \n \n \"Facebook\"\n \n \n \"loading\"\n \n \n NVHTML-BENCH# \n\n\nsearch with tags-path\n^^^^^^^^^^^^^^^^^^^^^\n \n ::\n \n NVHTML-BENCH# nvhtml_tgpth -input opis.html -tgpth html.body.di\n [\n 'div',\n 'div',\n 'div',\n 'div'\n ]\n \n \n NVHTML-BENCH# nvhtml_tgpth -input opis.html -tgpth html.body.div\n [\n 0,\n 1,\n 2,\n 3\n ]\n \n NVHTML-BENCH#\n NVHTML-BENCH# nvhtml_tgpth -input opis.html -tgpth html.body.div.3\n
    \n \n
    \n \n
    \n Our website uses cookies. By accessing our website and\n
    \n
    \n agreeing to this policy, you consent to our use of cookies.\n
    \n \n
    \n \n \n ACCEPT\n \n \n \n MORE INFO\n \n \n
    \n \n
    \n
    \n NVHTML-BENCH#\n\n\n usage: nvhtml_tgpth [-h] [-input INPUT_HTML_FILE] [-codec INPUT_CODEC]\n [-tgpth TAG_PATH]\n \n optional arguments:\n -h, --help show this help message and exit\n -input --input_html_file INPUT_HTML_FILE input html file name\n -codec --input_codec INPUT_CODEC input html file codec\n -tgpth --tag_path TAG_PATH html tag dot path\n\n\nhtml to db\n^^^^^^^^^^\n \n ::\n \n NVHTML-BENCH# nvhtml_sqlite -input opis.html\n db: ./opis.html.sqlite.db\n table: tb_html\n NVHTML-BENCH#\n\n\n\n NVHTML-BENCH# sqlite3 opis.html.sqlite.db\n SQLite version 3.22.0 2018-01-22 18:45:57\n Enter \".help\" for usage hints.\n sqlite>\n sqlite> .table\n tb_html\n sqlite>\n sqlite> .schema tb_html\n CREATE TABLE IF NOT EXISTS \"tb_html\" (\n \"index\" INTEGER,\n \"_pl\" TEXT,\n \"_breadth\" TEXT,\n \"_depth\" TEXT,\n \"_pbreadth\" TEXT,\n \"_samepl_sibseq\" TEXT,\n \"_samepl_breadth\" TEXT,\n \"_tag\" TEXT,\n \"_sibseq\" TEXT,\n \"_text\" TEXT,\n \"_tail\" TEXT,\n \"class\" TEXT,\n \"href\" TEXT,\n \"id\" TEXT,\n \"style\" TEXT,\n \"type\" TEXT,\n \"src\" TEXT,\n \"rel\" TEXT,\n \"target\" TEXT,\n \"title\" TEXT,\n \"content\" TEXT,\n \"alt\" TEXT,\n \"media\" TEXT,\n \"name\" TEXT,\n \"align\" TEXT,\n \"property\" TEXT,\n \"role\" TEXT,\n \"value\" TEXT,\n \"data-shared\" TEXT,\n \"hreflang\" TEXT,\n \"for\" TEXT,\n \"aria-current\" TEXT,\n \"colspan\" TEXT,\n \"method\" TEXT,\n \"action\" TEXT,\n \"sizes\" TEXT,\n \"placeholder\" TEXT,\n \"height\" TEXT,\n \"width\" TEXT,\n \"http-equiv\" TEXT,\n \"autocomplete\" TEXT,\n \"data-layout\" TEXT,\n \"data-orig-file\" TEXT,\n \"data-href\" TEXT,\n \"lang\" TEXT,\n \"data-image-title\" TEXT,\n \"data-recalc-dims\" TEXT,\n \"data-attachment-id\" TEXT,\n \"data-text\" TEXT,\n \"data-flxmap\" TEXT,\n \"size\" TEXT,\n \"data-image-description\" TEXT,\n \"data-medium-file\" TEXT,\n \"async\" TEXT,\n \"language\" TEXT,\n \"srcset\" TEXT,\n \"data-comments-opened\" TEXT,\n \"data-large-file\" TEXT,\n \"data-via\" TEXT,\n \"defer\" TEXT,\n \"data-permalink\" TEXT,\n \"data-image-meta\" TEXT,\n \"data-noptimize\" TEXT,\n \"data-url\" TEXT,\n \"data-orig-size\" TEXT\n );\n CREATE INDEX \"ix_tb_html_index\"ON \"tb_html\" (\"index\");\n sqlite>\n\n\n sqlite>\n sqlite> SELECT src FROM tb_html WHERE _tag==\"img\" AND src like \"%acebook.png\";\n https://opistobranquis.info/wp-content/themes/tempera/images/socials/Facebook.png\n https://opistobranquis.info/wp-content/themes/tempera/images/socials/Facebook.png\n https://opistobranquis.info/wp-content/themes/tempera/images/socials/Facebook.png\n https://opistobranquis.info/wp-content/themes/tempera/images/socials/Facebook.png\n sqlite>\n sqlite>\n sqlite>\n sqlite>\n sqlite> SELECT href FROM tb_html WHERE _tag==\"link\" AND href like \"%.com\";\n //s0.wp.com\n //c0.wp.com\n //i0.wp.com\n //i1.wp.com\n //i2.wp.com\n sqlite>\n\n\nhtml to dir\n^^^^^^^^^^^\n \n ::\n \n NVHTML-BENCH# mkdir TMP\n NVHTML-BENCH# nvhtml_dir -input opis.html -wkdir TMP\n\n NVHTML-BENCH# tree -fdL 4 TMP | head\n TMP\n \u2514\u2500\u2500 TMP/html.0\n \u251c\u2500\u2500 TMP/html.0/body.1\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 TMP/html.0/body.1/.91\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 TMP/html.0/body.1/div.90\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 TMP/html.0/body.1/div.90/.4\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 TMP/html.0/body.1/div.90/.7\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 TMP/html.0/body.1/div.90/div.0\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 TMP/html.0/body.1/div.90/div.1\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 TMP/html.0/body.1/div.90/div.2\n NVHTML-BENCH#\n NVHTML-BENCH# tree -fdL 4 TMP | tail\n \u251c\u2500\u2500 TMP/html.0/head.0/style.45\n \u251c\u2500\u2500 TMP/html.0/head.0/style.55\n \u251c\u2500\u2500 TMP/html.0/head.0/style.56\n \u251c\u2500\u2500 TMP/html.0/head.0/style.57\n \u251c\u2500\u2500 TMP/html.0/head.0/style.58\n \u251c\u2500\u2500 TMP/html.0/head.0/style.78\n \u251c\u2500\u2500 TMP/html.0/head.0/style.79\n \u2514\u2500\u2500 TMP/html.0/head.0/title.7\n \n 138 directories\n\n NVHTML-BENCH# ls -l TMP/html.0/body.1/div.90/div.2\n total 36\n drwxr-xr-x 3 root root 4096 Aug 11 02:49 a.3\n drwxr-xr-x 3 root root 4096 Aug 11 02:49 a.4\n -rw-r--r-- 1 root root 7 Aug 11 02:49 attrib.class\n -rw-r--r-- 1 root root 7 Aug 11 02:49 attrib.id\n -rw-r--r-- 1 root root 538 Aug 11 02:49 outter_html\n -rw-r--r-- 1 root root 3 Aug 11 02:49 tag\n -rw-r--r-- 1 root root 1 Aug 11 02:49 tail\n -rw-r--r-- 1 root root 4 Aug 11 02:49 text\n -rw-r--r-- 1 root root 8 Aug 11 02:49 text_intag\n NVHTML-BENCH# more TMP/html.0/body.1/div.90/div.2/attrib.id\n srights\n NVHTML-BENCH# more TMP/html.0/body.1/div.90/div.2/attrib.class\n socials\n NVHTML-BENCH# more TMP/html.0/body.1/div.90/div.2/outter_html\n \n NVHTML-BENCH#\n\n NVHTML-BENCH# ls -al TMP/html.0/body.1/div.90/div.2 | egrep \" \\.[a-z]\"\n -rw-r--r-- 1 root root 1 Aug 11 02:49 .breadth\n -rw-r--r-- 1 root root 1 Aug 11 02:49 .depth\n -rw-r--r-- 1 root root 27 Aug 11 02:49 .mkdir_pth\n -rw-r--r-- 1 root root 2 Aug 11 02:49 .pbreadth\n -rw-r--r-- 1 root root 18 Aug 11 02:49 .pl\n -rw-r--r-- 1 root root 1 Aug 11 02:49 .samepl_breadth\n -rw-r--r-- 1 root root 1 Aug 11 02:49 .samepl_sibseq\n -rw-r--r-- 1 root root 1 Aug 11 02:49 .sibseq\n NVHTML-BENCH#\n NVHTML-BENCH#\n NVHTML-BENCH#\n NVHTML-BENCH# more TMP/html.0/body.1/div.90/div.2/.breadth\n 2\n NVHTML-BENCH# more TMP/html.0/body.1/div.90/div.2/.depth\n 3\n NVHTML-BENCH# more TMP/html.0/body.1/div.90/div.2/.pbreadth\n 90\n NVHTML-BENCH# more TMP/html.0/body.1/div.90/div.2/.pl\n /html/body/div/div\n NVHTML-BENCH#\n NVHTML-BENCH# more TMP/html.0/body.1/div.90/div.2/.samepl_breadth\n 2\n NVHTML-BENCH# more TMP/html.0/body.1/div.90/div.2/.samepl_sibseq\n 2\n NVHTML-BENCH# more TMP/html.0/body.1/div.90/div.2/.sibseq\n 2\n NVHTML-BENCH#\n\n\n\n\nfind all\n^^^^^^^^\n\n ::\n\n NVHTML-BENCH# nvhtml_find_all -input opis.html -attrib \"http-equiv\"\n [\n 'X-UA-Compatible',\n 'Content-Type'\n ]\n NVHTML-BENCH#\n NVHTML-BENCH# nvhtml_find_all -input opis.html -attrib \"href\" | egrep \"jorunna-e\"\n 'https://opistobranquis.info/en/guia/nudibranchia/doridina/doridoidei/doridoidea/jorunna-efe/',\n 'https://opistobranquis.info/en/guia/nudibranchia/doridina/doridoidei/doridoidea/jorunna-evansi/',\n NVHTML-BENCH#\n\n NVHTML-BENCH# nvhtml_find_all -input opis.html\n common attribs:\n [\n '_pl',\n '_breadth',\n '_depth',\n '_pbreadth',\n '_samepl_sibseq',\n '_samepl_breadth',\n '_tag',\n '_sibseq',\n '_text',\n '_tail'\n ]\n attrib_names:frequency\n {\n 'class': 947,\n 'href': 810,\n 'id': 181,\n 'style': 80,\n 'type': 78,\n 'src': 55,\n 'rel': 49,\n 'target': 41,\n 'title': 36,\n 'content': 23,\n 'alt': 19,\n 'media': 17,\n 'name': 15,\n 'align': 13,\n 'property': 12,\n 'role': 9,\n 'value': 7,\n 'hreflang': 4,\n 'data-shared': 4,\n 'colspan': 3,\n 'for': 3,\n 'aria-current': 3,\n 'sizes': 3,\n 'action': 3,\n 'method': 3,\n 'placeholder': 2,\n 'width': 2,\n 'http-equiv': 2,\n 'height': 2,\n 'data-permalink': 1,\n 'data-recalc-dims': 1,\n 'srcset': 1,\n 'size': 1,\n 'data-layout': 1,\n 'data-orig-size': 1,\n 'language': 1,\n 'data-medium-file': 1,\n 'data-href': 1,\n 'data-image-description': 1,\n 'data-image-title': 1,\n 'data-orig-file': 1,\n 'defer': 1,\n 'data-flxmap': 1,\n 'data-noptimize': 1,\n 'data-image-meta': 1,\n 'lang': 1,\n 'data-url': 1,\n 'data-large-file': 1,\n 'autocomplete': 1,\n 'data-via': 1,\n 'async': 1,\n 'data-comments-opened': 1,\n 'data-attachment-id': 1,\n 'data-text': 1\n }\n NVHTML-BENCH#\n\n\nnvhtml_wfs_udlrpls\n^^^^^^^^^^^^^^^^^^\n \n ::\n \n NVHTML-BENCH#nvhtml_wfs_udlrpls -input xxx.html\n\n\nnvhtml_wfs_dulrpls\n^^^^^^^^^^^^^^^^^^\n\n ::\n\n NVHTML-BENCH#nvhtml_wfs_dulrpls -input xxx.html\n\n\n\n\n\nExamples\n--------\n\ntagsrch\n^^^^^^^\n\n ::\n \n from lxml.etree import HTML as LXHTML\n from lxml.etree import XML as LXML\n from xdict.jprint import pdir,pobj\n from nvhtml import txt\n from nvhtml import lvsrch\n from nvhtml import fs\n from nvhtml import engine\n from nvhtml import utils\n import lxml.sax\n \n :: \n \n html_str = fs.rfile(\"./test.html\")\n root = LXHTML(html_str)\n eles = lvsrch.a(root,7,8,show=False)\n print(eles[0])\n print(eles[5])\n eles = lvsrch.a(root,7,8,which=0)\n eles = lvsrch.a(root,7,8,which=0,source=False)\n\n.. image:: ./images/lvsrch.a.0.png\n\n\nrelation get\n^^^^^^^^^^^^\n\n:: \n \n html_str = fs.rfile(\"./test.html\")\n root = LXHTML(html_str)\n ele = engine.xpath(root,\"//div\",5)\n \n engine.parent(ele)\n engine.grand_parent(ele)\n engine.ancestors(ele)\n engine.parent(ele)\n engine.grand_parent(ele)\n engine.ancestors(ele)\n engine.lsib(ele)\n engine.rsib(ele)\n engine.lcin(ele)\n engine.rcin(ele)\n engine.siblings(ele)\n engine.descendants(ele,5,6)\n \n engine.layer(ele)\n engine.breadth(ele)\n engine.depth(ele)\n engine.pathlist(ele)\n\n.. image:: ./images/engine.0.png\n\n\ndescription matrix\n^^^^^^^^^^^^^^^^^^\n\n:: \n \n html_str = fs.rfile(\"./test.html\")\n root = LXHTML(html_str)\n wfs = engine.WFS(root)\n pobj(wfs.mat[3][1])\n \n.. image:: ./images/engine.1.png\n\n\nwidth-first-traverse\n^^^^^^^^^^^^^^^^^^^^\n::\n\n html_str = fs.rfile(\"./test.html\")\n root = LXHTML(html_str)\n pls = engine.wfspls(root)\n utils.parr(pls[:10])\n\n.. image:: ./images/engine.2.png\n\n\ndepth-first-traverse\n^^^^^^^^^^^^^^^^^^^^\n\n::\n\n import lxml.sax\n html_str = fs.rfile(\"./test.html\")\n root = LXHTML(html_str)\n dfs = engine.DFS()\n lxml.sax.saxify(root, dfs)\n utils.parr(dfs.pls[:5])\n utils.parr(dfs.pls[-10:])\n\n.. image:: ./images/engine.3.png\n\n\nbeautify\n^^^^^^^^\n\n::\n\n html_str = fs.rfile(\"./test.html\")\n root = LXHTML(html_str)\n html_str = engine.beautify(root)\n print(html_str[:480])\n\n.. image:: ./images/engine.4.png\n\n`lvsrch <./modules.html#module-lvsrch>`_\n-----------------------------------------\n\n.. code-block:: console\n\n [\n 'a',\n 'abbr',\n 'acronym',\n 'address',\n 'applet',\n 'area',\n 'arguments',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'base',\n 'basefont',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'command',\n 'datalist',\n 'dd',\n 'del_',\n 'details',\n 'dfn',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'elel',\n 'em',\n 'embed',\n 'engine',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'font',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'isindex',\n 'kbd',\n 'keygen',\n 'label',\n 'legend',\n 'li',\n 'link',\n 'map',\n 'mark',\n 'menu',\n 'menuitem',\n 'meta',\n 'meter',\n 'nav',\n 'noframes',\n 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'param',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'script',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n 'srch',\n 'strike',\n 'strong',\n 'style',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'title',\n 'tr',\n 'track',\n 'tt',\n 'u',\n 'ul',\n 'utils',\n 'var',\n 'video',\n 'wbr',\n 'xmp'\n ]\n\n\n`engine <./modules.html#module-nvhtml.engine>`_\n-----------------------------------------------\n\n.. code-block:: console\n\n [\n 'BEAUTIFY',\n 'ContentHandler',\n 'DFS',\n 'WFS',\n 'ancestor',\n 'ancestors',\n 'beautify',\n 'between_levels_cond_func',\n 'breadth',\n 'child',\n 'children',\n 'copy',\n 'default_wfs_handler',\n 'depth',\n 'descendants',\n 'descendants_pls',\n 'dfs_traverse',\n 'dfspls',\n 'disconnect',\n 'elel',\n 'extract_pls',\n 'following_sibs',\n 'grand_parent',\n 'html',\n 'init_cls_wfs_arguments',\n 'is_leaf',\n 'layer',\n 'layer_wfs_handler',\n 'lcin',\n 'leaf_descendants',\n 'leaf_descendants_pls',\n 'loc',\n 'loc2node',\n 'lsib',\n 'lxe',\n 'lxml',\n 'nonleaf_descendants',\n 'nonleaf_descendants_pls',\n 'parent',\n 'pathlist',\n 'plget',\n 'preceding_sibs',\n 'rcin',\n 're',\n 'rootnode',\n 'rsib',\n 'samepl_breadth',\n 'samepl_siblings',\n 'samepl_sibseq',\n 'siblings',\n 'sibseq',\n 'source',\n 'text_intag',\n 'txtize',\n 'utils',\n 'wfs_traverse',\n 'wfspls',\n 'xpath',\n 'xpath_levels'\n ]\n\n\n\n\n=======\nHistory\n=======\n\n0.0.1 (2018-12-18)\n------------------\n\n* first commit", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ihgazni2/nvhtml", "keywords": "html,tag,level,search", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "nvhtml", "package_url": "https://pypi.org/project/nvhtml/", "platform": "", "project_url": "https://pypi.org/project/nvhtml/", "project_urls": { "Homepage": "https://github.com/ihgazni2/nvhtml" }, "release_url": "https://pypi.org/project/nvhtml/0.0.44/", "requires_dist": null, "requires_python": "", "summary": "A Python library manipulate html", "version": "0.0.44", "yanked": false, "yanked_reason": null }, "last_serial": 7032294, "releases": { "0.0.26": [ { "comment_text": "", "digests": { "md5": "7f31dfdafdebbe02ad428435b0abe3a4", "sha256": "bedb14314afc79f317fcd756de2bbbd33bb4119361603dd737f7872b2565e03b" }, "downloads": -1, "filename": "nvhtml-0.0.26.tar.gz", "has_sig": false, "md5_digest": "7f31dfdafdebbe02ad428435b0abe3a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 282689, "upload_time": "2019-08-12T14:43:00", "upload_time_iso_8601": "2019-08-12T14:43:00.016999Z", "url": "https://files.pythonhosted.org/packages/20/33/a42ad681d5aa3f218f4685226f5aa8283510328a83722f0dc5d80793733c/nvhtml-0.0.26.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.28": [ { "comment_text": "", "digests": { "md5": "3ed888bbb95834f2ec2a9b75f53c6ba3", "sha256": "7a3b7b5f32b91b26fed772a97980ed38fa7209a9d6907b6ff9b8eb3693f9f830" }, "downloads": -1, "filename": "nvhtml-0.0.28.tar.gz", "has_sig": false, "md5_digest": "3ed888bbb95834f2ec2a9b75f53c6ba3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 282707, "upload_time": "2019-08-14T08:17:03", "upload_time_iso_8601": "2019-08-14T08:17:03.087414Z", "url": "https://files.pythonhosted.org/packages/95/7b/0fdea5f7beaeff0d69676d88d4b35b210ee9fb91e6d82556b8d34220aee9/nvhtml-0.0.28.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.29": [ { "comment_text": "", "digests": { "md5": "7c54a81374ac2992ad999bcb8658a862", "sha256": "52446d29c44083b929172c6599332f2bb02ab2ae33cc079abfbd9c8049dbba50" }, "downloads": -1, "filename": "nvhtml-0.0.29.tar.gz", "has_sig": false, "md5_digest": "7c54a81374ac2992ad999bcb8658a862", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 283696, "upload_time": "2019-08-17T10:42:05", "upload_time_iso_8601": "2019-08-17T10:42:05.643660Z", "url": "https://files.pythonhosted.org/packages/3c/ba/29690892ae24378e906dea6c2a6ebc1f971019ade74650f026f9e26b5c0d/nvhtml-0.0.29.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.30": [ { "comment_text": "", "digests": { "md5": "93ec035fa45ce7346b0cd6a61e27526b", "sha256": "08f6690d1436e6d331b2f5b65e18345113ba738f907f1c0169f352de59e9bfae" }, "downloads": -1, "filename": "nvhtml-0.0.30.tar.gz", "has_sig": false, "md5_digest": "93ec035fa45ce7346b0cd6a61e27526b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 283689, "upload_time": "2019-08-17T13:39:15", "upload_time_iso_8601": "2019-08-17T13:39:15.001455Z", "url": "https://files.pythonhosted.org/packages/20/bb/6621b8c1380f141a497f54c7a840e74ab77c12e6eebe2e125b52cfa29478/nvhtml-0.0.30.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.32": [ { "comment_text": "", "digests": { "md5": "78daa4930ff1d905f23efc7a255053b5", "sha256": "59ad74274e8b9da0b275288e05048e7af1cef720d5b173e930e717d4b2eefb93" }, "downloads": -1, "filename": "nvhtml-0.0.32.tar.gz", "has_sig": false, "md5_digest": "78daa4930ff1d905f23efc7a255053b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 285613, "upload_time": "2019-08-18T11:17:51", "upload_time_iso_8601": "2019-08-18T11:17:51.397868Z", "url": "https://files.pythonhosted.org/packages/50/89/24a105f83c5790127497c0c603ad5a90d7dd5317cf255266c451fe1b0d13/nvhtml-0.0.32.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.34": [ { "comment_text": "", "digests": { "md5": "8aefc703e622bb3c58b8eb342c7f8225", "sha256": "446e15ac38f14295dfee4543d41efe165d5e018e1e0dc8e00f80cdf31f559b75" }, "downloads": -1, "filename": "nvhtml-0.0.34.tar.gz", "has_sig": false, "md5_digest": "8aefc703e622bb3c58b8eb342c7f8225", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 290545, "upload_time": "2019-08-19T13:06:57", "upload_time_iso_8601": "2019-08-19T13:06:57.355373Z", "url": "https://files.pythonhosted.org/packages/77/40/a2db242599dbfa46c67512bbe25f07cdaf971ddb559b6749cbd4ac531f48/nvhtml-0.0.34.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.35": [ { "comment_text": "", "digests": { "md5": "068e91cac9c93774c6dcf165875078f5", "sha256": "319bff2651dc3f58086263c3415bf94952a8c63e7896fde1efb2afac9ab08ac6" }, "downloads": -1, "filename": "nvhtml-0.0.35.tar.gz", "has_sig": false, "md5_digest": "068e91cac9c93774c6dcf165875078f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 290887, "upload_time": "2019-08-20T15:02:53", "upload_time_iso_8601": "2019-08-20T15:02:53.629855Z", "url": "https://files.pythonhosted.org/packages/1e/20/93196b2c08929ff4b3742ab645bd7ad1e206ae2308b9b7e8d382744800da/nvhtml-0.0.35.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.36": [ { "comment_text": "", "digests": { "md5": "292202dea5370f72c4913a819e15876c", "sha256": "13df6badd79a27757548b593a0aa340325c97e6524c616c8f805c06d78c0fc73" }, "downloads": -1, "filename": "nvhtml-0.0.36.tar.gz", "has_sig": false, "md5_digest": "292202dea5370f72c4913a819e15876c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 290913, "upload_time": "2019-10-02T03:09:41", "upload_time_iso_8601": "2019-10-02T03:09:41.420674Z", "url": "https://files.pythonhosted.org/packages/52/c6/6b00b9028205eced0bee4277a21a32ef5bef29914b45499a9c06423d66a9/nvhtml-0.0.36.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.37": [ { "comment_text": "", "digests": { "md5": "e3a73a8c6da760afa77442638d2144a7", "sha256": "e5e617b5d586d5ae0234a42455eb8e2eaccd556689f51c2299d2b58cf6a85bba" }, "downloads": -1, "filename": "nvhtml-0.0.37.tar.gz", "has_sig": false, "md5_digest": "e3a73a8c6da760afa77442638d2144a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 291504, "upload_time": "2019-10-02T10:39:37", "upload_time_iso_8601": "2019-10-02T10:39:37.682541Z", "url": "https://files.pythonhosted.org/packages/4c/fd/d371a9722df0ce233df0037819f912fbc3b0c27a68ffeb763ef7ca005ae2/nvhtml-0.0.37.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.39": [ { "comment_text": "", "digests": { "md5": "7f1e6b858bf29435916aa611af62a737", "sha256": "136d5bbed1bf2e0d221e0463c175c127b09d1fe999b1c110968fc68aae48522b" }, "downloads": -1, "filename": "nvhtml-0.0.39.tar.gz", "has_sig": false, "md5_digest": "7f1e6b858bf29435916aa611af62a737", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 292311, "upload_time": "2019-10-05T08:13:01", "upload_time_iso_8601": "2019-10-05T08:13:01.165559Z", "url": "https://files.pythonhosted.org/packages/32/43/e8ad68ad569c3fec0ef01379e52cd61128ad55a49a3d3e2928c5cc08294c/nvhtml-0.0.39.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.40": [ { "comment_text": "", "digests": { "md5": "6fcd9f4f963fe68491bc7c64854d4bd9", "sha256": "82a59e7cd65e48b9708ba33a660de50fbfddff3c17532c04355ffb9c66eaaafa" }, "downloads": -1, "filename": "nvhtml-0.0.40.tar.gz", "has_sig": false, "md5_digest": "6fcd9f4f963fe68491bc7c64854d4bd9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 292370, "upload_time": "2019-10-07T02:14:21", "upload_time_iso_8601": "2019-10-07T02:14:21.630508Z", "url": "https://files.pythonhosted.org/packages/f3/84/4d8ca2f8749823cefed960e73e63c1b9267497d69ee5c27498f066d4a890/nvhtml-0.0.40.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.42": [ { "comment_text": "", "digests": { "md5": "08a99ca2eaeb66839f222939178291a7", "sha256": "a87dcc5bd7cd4ea4b19e2e7acb784eedac6d1a7937a83081c80f51f792ae5893" }, "downloads": -1, "filename": "nvhtml-0.0.42.tar.gz", "has_sig": false, "md5_digest": "08a99ca2eaeb66839f222939178291a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 292398, "upload_time": "2019-10-07T03:08:38", "upload_time_iso_8601": "2019-10-07T03:08:38.374778Z", "url": "https://files.pythonhosted.org/packages/43/4b/2396a004b42f2e3ce78f1b57fa116b91e7368263a8cc1de8786f208f36b7/nvhtml-0.0.42.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.43": [ { "comment_text": "", "digests": { "md5": "c096ad44fcd275f065f0ceff2be3dc1d", "sha256": "e63217e128777cdd8dd0a2e0fc8ba21d1a6d6b8a64f12eba000b10789bb5a6b0" }, "downloads": -1, "filename": "nvhtml-0.0.43.tar.gz", "has_sig": false, "md5_digest": "c096ad44fcd275f065f0ceff2be3dc1d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 292452, "upload_time": "2019-10-31T04:31:21", "upload_time_iso_8601": "2019-10-31T04:31:21.234849Z", "url": "https://files.pythonhosted.org/packages/0f/52/b3253445a32e60746512e0d25ae82bb51455c3609113a2359bb95b067e71/nvhtml-0.0.43.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.44": [ { "comment_text": "", "digests": { "md5": "b998833c6f60776fb3d45b3fdb8b2136", "sha256": "49e72eef244f3f5fe585190f115a88e600d49edb88407d1badc9d8c7379041dc" }, "downloads": -1, "filename": "nvhtml-0.0.44.tar.gz", "has_sig": false, "md5_digest": "b998833c6f60776fb3d45b3fdb8b2136", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 293428, "upload_time": "2020-04-16T13:44:44", "upload_time_iso_8601": "2020-04-16T13:44:44.374037Z", "url": "https://files.pythonhosted.org/packages/b4/b6/6e57ede3a2b6eb97a7e84be479fcbd59ab48850fdd65abd354e05b4fe553/nvhtml-0.0.44.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b998833c6f60776fb3d45b3fdb8b2136", "sha256": "49e72eef244f3f5fe585190f115a88e600d49edb88407d1badc9d8c7379041dc" }, "downloads": -1, "filename": "nvhtml-0.0.44.tar.gz", "has_sig": false, "md5_digest": "b998833c6f60776fb3d45b3fdb8b2136", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 293428, "upload_time": "2020-04-16T13:44:44", "upload_time_iso_8601": "2020-04-16T13:44:44.374037Z", "url": "https://files.pythonhosted.org/packages/b4/b6/6e57ede3a2b6eb97a7e84be479fcbd59ab48850fdd65abd354e05b4fe553/nvhtml-0.0.44.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }