HTML::TableExtract is a subclass of HTML::Parser that serves to extract the information from tables of interest contained within an HTML document. The information from each extracted table is stored in table objects. Tables can be extracted as text, HTML, or HTML::ElementTable structures (for in-place editing or manipulation).
There are currently four constraints available to specify which tables you would like to extract from a document: Headers, Depth, Count, and Attributes.
Headers, the most flexible and adaptive of the techniques, involves specifying text in an array that you expect to appear above the data in the tables of interest. Once all headers have been located in a row of that table, all further cells beneath the columns that matched your headers are extracted. All other columns are ignored: think of it as vertical slices through a table. In addition, TableExtract automatically rearranges each row in the same order as the headers you provided. If you would like to disable this, set automap to 0 during object creation, and instead rely on the column_map() method to find out the order in which the headers were found. Furthermore, TableExtract will automatically compensate for cell span issues so that columns are really the same columns as you would visually see in a browser. This behavior can be disabled by setting the gridmap parameter to 0. HTML is stripped from the entire textual content of a cell before header matches are attempted -- unless the keep_html parameter was enabled.
Depth and Count are more specific ways to specify tables in relation to one another. Depth represents how deeply a table resides in other tables. The depth of a top-level table in the document is 0. A table within a top-level table has a depth of 1, and so on. Each depth can be thought of as a layer; tables sharing the same depth are on the same layer. Within each of these layers, Count represents the order in which a table was seen at that depth, starting with 0. Providing both a depth and a count will uniquely specify a table within a document.
Attributes match based on the attributes of the html <table> tag, for example, border widths or background color.
Each of the Headers, Depth, Count, and Attributes specifications are cumulative in their effect on the overall extraction. For instance, if you specify only a Depth, then you get all tables at that depth (note that these could very well reside in separate higher- level tables throughout the document since depth extends across tables). If you specify only a Count, then the tables at that Count from all depths are returned (i.e., the n_th occurrence of a table at each depth). If you only specify _Headers, then you get all tables in the document containing those column headers. If you have specified multiple constraints of Headers, Depth, Count, and Attributes, then each constraint has veto power over whether a particular table is extracted.
If no Headers, Depth, Count, or Attributes are specified, then all tables match.
When extracting only text from tables, the text is decoded with HTML::Entities by default; this can be disabled by setting the decode parameter to 0.
Package Version | Update ID | Released | Package Hub Version | Platforms | Subpackages |
---|---|---|---|---|---|
2.15-bp156.3.1 info | GA Release | 2023-07-22 | 15 SP6 |
|
|
2.15-bp155.2.8 info | GA Release | 2023-05-17 | 15 SP5 |
|
|
2.15-bp154.1.14 info | GA Release | 2022-05-09 | 15 SP4 |
|
|
2.13-bp153.1.12 info | GA Release | 2021-03-06 | 15 SP3 |
|
|
2.13-bp152.3.15 info | GA Release | 2020-04-16 | 15 SP2 |
|
|
2.13-bp151.3.1 info | GA Release | 2019-07-16 | 15 SP1 |
|
|
2.13-bp151.2.12 info | GA Release | 2019-05-18 | 15 SP1 |
|
|
2.13-bp150.2.4 info | GA Release | 2018-07-30 | 15 |
|
|