ryannikolaidis c0457c1cc3
feat: include images when partitioning html (#3945)
Currently we [filter img
tags](2addb19473/unstructured/partition/html/partition.py (L226-L229))
before tags are converted to Elements by the html partitioner. More
importantly we also don’t currently have a defined “block” / mapping to
support these. This adds these mappings and logic to process.

It also respects `extract_image_block_types` and
`extract_image_block_to_payload` (as we do with pdfs) to determine
whether base64 is included in the metadata.

The partitioned Image Elements sets the text to the img tag’s alt text
if available.

The partitioned Image Elements include the [url in the
metadata](https://github.com/Unstructured-IO/unstructured/blob/main/unstructured/documents/elements.py#L209)
(rather than image_base64) if the img tag src is a url.

## Testing

unit tests have been added for explicit coverage.
existing integration tests and other unit test fixtures have been
updated to account for `Image` elements now present

---------

Co-authored-by: ryannikolaidis <ryannikolaidis@users.noreply.github.com>
2025-03-08 01:25:21 +00:00

148 lines
5.8 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
<title>
</title>
</head>
<body>
<p class="UncategorizedText" id="1eba9da7f7ba3d80d060f638e240cc2c">
testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2
</p>
<p class="UncategorizedText" id="74d66fc2066f7844294c8d162f443892">
testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2
</p>
<p class="UncategorizedText" id="20c74c9c7e2f03ebdaa0cc475abc461e">
testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2
</p>
<p class="UncategorizedText" id="13be5a443b462adf06733ac5f3c3f821">
testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2
</p>
<p class="UncategorizedText" id="e3c59c23c9a8d3251fbe8c0b8bf06a4f">
testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2
</p>
<p class="UncategorizedText" id="a97244e416b60752f3071e465dd63d41">
testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2
</p>
<p class="UncategorizedText" id="dfd9cc8f70664dc0b785e1f2332a0993">
testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2
</p>
<p class="UncategorizedText" id="d597dda3a2ba146bd314a4d3a92c4aac">
testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2
</p>
<p class="UncategorizedText" id="5e75c9860459e175f1087efd0dc40972">
testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2
</p>
<p class="UncategorizedText" id="c41a8ba74f19172536db4877b5e13f7e">
testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2
</p>
<p class="UncategorizedText" id="29d99bc3b2a5fde6029ddfe8b1604f3a">
testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2
</p>
<p class="UncategorizedText" id="589780ba10ade81f721303579ee9bce0">
testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2
</p>
<p class="UncategorizedText" id="7bc5e9d84b41175c9ff8ad841394c2b3">
testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2
</p>
<p class="UncategorizedText" id="caab6974e98b9e03c78191c02591775e">
testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2 testtext2
</p>
<img alt="" class="Image" id="61525bb0c406b033be2849cb375e9fcd"/>
<p class="UncategorizedText" id="7e8cf6622ad36f28966178e194feaad8">
Testdoc2 List Item 1
</p>
<p class="UncategorizedText" id="eeb9717b5c634b6bb4b4bb1b83101500">
Testdoc2 List Item 1 Nested Item A
</p>
<p class="UncategorizedText" id="c5bc1b1b90fd002ca136bc3d76e3d482">
Testdoc2 List Item 1 Nested Item B
</p>
<p class="UncategorizedText" id="9ecb8d523cdd75be94294fa2ca440799">
Testdoc2 List Item 2
</p>
<p class="UncategorizedText" id="4909ea47e524d3b8fbac470c0663f589">
Testdoc2 List Item 3
</p>
<p class="UncategorizedText" id="ab916d1a2aa844a463b48a24637a8b2d">
Testdoc2 List Item 4
</p>
<p class="UncategorizedText" id="a9060bb59dfa0b37c1ec13e97228470a">
Testdoc2 List Item 5
</p>
<p class="NarrativeText" id="0dbff111f50ea5a58eee83c85a1c30b5">
This is the link for unstructured . io.
</p>
<li class="ListItem" id="ed95477f3bff4586983201b6387c875b">
Testdoc2 Checklist Item 1
</li>
<li class="ListItem" id="260cee6fb6f1562e7b1cb0f7644ea64d">
Testdoc2 Checklist Item 2 (checked)
</li>
<li class="ListItem" id="6820bf233e6604b7bd6750d0d2b62192">
Testdoc2 Checklist Item 3
</li>
<p class="UncategorizedText" id="8f13efbe5d5b289c6ce8eb00e2b5fae2">
😃 😃 😃 😃 😃 😃 😃 😃 😃 😃 😃 😃
</p>
<p class="NarrativeText" id="ecc13666f56ab3fb01917335016cd9c3">
Testdoc2 bold text
</p>
<p class="UncategorizedText" id="93ec1210a0bf6e8b0c6c8504648e7489">
Testdoc2 italic text
</p>
<h1 class="Title" id="f3c0e02138cb55302a075d5508843876">
Testdoc2 Heading 1 Sized Text
</h1>
<h1 class="Title" id="5bc45f2fc513158f644f2c217cc9e54d">
Testdoc2 Heading 2 Sized Text
</h1>
<h1 class="Title" id="81bebaf32dff5511a7856e553b526fa3">
Testdoc2 Heading 3 Sized Text
</h1>
<h1 class="Title" id="833cc590b6815b09fd40d1d73a752420">
Testdoc2 Heading 4 Sized Text
</h1>
<h1 class="Title" id="bff43fdce7563ccbd5cf3354090e8cf3">
Testdoc2 Heading 5 Sized Text
</h1>
<table class="Table" id="69b2cf7ade2f1034892b2b38b186fdaa" style="border: 1px solid black; border-collapse: collapse;">
<tr style="border: 1px solid black;">
<td style="border: 1px solid black;">
Testdoc2 Table: Column 1 Row 0
</td>
<td style="border: 1px solid black;">
Testdoc2 Table: Column 2 Row 0
</td>
<td style="border: 1px solid black;">
Testdoc2 Table: Column 3 Row 0
</td>
</tr>
<tr style="border: 1px solid black;">
<td style="border: 1px solid black;">
Testdoc2 Table: Column 1 Row 1
</td>
<td style="border: 1px solid black;">
Testdoc2 Table: Column 2 Row 1
</td>
<td style="border: 1px solid black;">
Testdoc2 Table: Column 3 Row 1
</td>
</tr>
<tr style="border: 1px solid black;">
<td style="border: 1px solid black;">
Testdoc2 Table: Column 1 Row 2
</td>
<td style="border: 1px solid black;">
Testdoc2 Table: Column 2 Row 2
</td>
<td style="border: 1px solid black;">
Testdoc2 Table: Column 3 Row 2
</td>
</tr>
</table>
<img alt="" class="Image" id="825a8cbb41eecc2f1b29d4b34cb05c2f"/>
</body>
</html>