HTML Table Extractor
HTML Table Extractor is a python library that uses Beautiful Soup to extract data from complicated and messy html table
Important links
- Repository: https://github.com/yuanxu-li/html-table-extractor
- Issues: https://github.com/yuanxu-li/html-table-extractor/issues
Installation
pip install 'beautifulsoup4==4.5.3'
pip install html-table-extractor
Usage
Example 1 - Simple
| 1 | 2 |
| 3 | 4 |
from html_table_extractor.extractor import Extractor
table_doc = """
<table><tr><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td></tr></table>
"""
extractor = Extractor(table_doc)
extractor.parse()
extractor.return_list()
It will print out:
[[u'1', u'2'], [u'3', u'4']]
Example 2 - Transformer
| 1 | 2 |
| 3 | 4 |
from html_table_extractor.extractor import Extractor
table_doc = """
<table><tr><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td></tr></table>
"""
extractor = Extractor(table_doc, transformer=int)
extractor.parse()
extractor.return_list()
It will print out:
[[1, 2], [3, 4]]
Example 3 - Pass BS4 Tag
| 1 | 2 |
| 3 | 4 |
from html_table_extractor.extractor import Extractor
from bs4 import BeautifulSoup
table_doc = """
<html><table id='wanted'><tr><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td></tr></table><table id='unwanted'><tr><td>not wanted</td></tr></table></html>
"""
soup = BeautifulSoup(table_doc, 'html.parser')
extractor = Extractor(soup, id_='wanted')
extractor.parse()
extractor.return_list()
It will print out:
[[u'1', u'2'], [u'3', u'4']]
Example 4 - Complex
| 1 | 2 | 3 |
| 4 | ||
| 5 | ||
from html_table_extractor.extractor import Extractor
table_doc = """
<table>
<tr>
<td rowspan=2>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td colspan=2>4</td>
</tr>
<tr>
<td colspan=3>5</td>
</tr>
</table>
"""
extractor = Extractor(table_doc)
extractor.parse()
extractor.return_list()
It will print out:
[[u'1', u'2', u'3'], [u'1', u'4', u'4'], [u'5', u'5', u'5']]
Example 5 - Conflicted
| 1 | 2 | 3 |
| 4 | ||
| 5 | ||
from html_table_extractor.extractor import Extractor
table_doc = """
<table>
<tr>
<td rowspan=2>1</td>
<td>2</td>
<td rowspan=3>3</td>
</tr>
<tr>
<td colspan=2>4</td>
</tr>
<tr>
<td colspan=2>5</td>
</tr>
</table>
"""
extractor = Extractor(table_doc)
extractor.parse()
extractor.return_list()
It will print out:
[[u'1', u'2', u'3'], [u'1', u'4', u'3'], [u'5', u'5', u'3']]
Example 6 - Write to file
| 1 | 2 |
| 3 | 4 |
from html_table_extractor.extractor import Extractor
table_doc = """
<table><tr><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td></tr></table>
"""
extractor = Extractor(table_doc).parse()
extractor.write_to_csv(path='.')
It will write to a given path and create a new csv file called output.csv:
1,2
3,4
Team
Errors/ Bugs
If something is not working correctly, or if you have any suggestion on improvements, report it here
Copyright
Copyright (c) 2017 Justin Li. Released under the MIT License
Third-party copyright in this distribution is noted where applicable.
Metadata
Release files for html-table-extractor 1.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| html_table_extractor-1.4.1-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Release files / html_table_extractor-1.4.1-py2.py3-none-any.whl
| Download URL | html_table_extractor-1.4.1-py2.py3-none-any.whl |
|---|---|
| Size | 4.8 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
5f3ef41aee2f2bf46400c46227b2a1b553165fb7dea00c9c41ec82c27da28a48
|
|
BLAKE2b-256 checksum How to use checksums |
3b8a12d04fa841340b818b0ff9c1439789301c5abe7f9389c9584f912c1e95b4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.18.4 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.14
|