Извлечение данных с заголовком из таблицы HTML - PullRequest
0 голосов
/ 18 ноября 2018

Вот несколько примеров HTML.Мы хотим извлечь данные из него и сохранить в базе данных.Какой самый простой и быстрый способ извлечь данные, используя идентификатор, имя или класс, кроме как через родительский.Я использую Selenium и C # для этой цели, но я не могу понять, как извлечь данные из тегов.Как вы можете видеть, нет идентификатора и имени для поиска тегов.

<tr>
        <td height="87" valign="top">
            <table width="730" border="0" cellpadding="0" cellspacing="0">
                <tbody><tr>
                    <td width="78" height="87" style="border-top-width: 1px;    border-left-width: 1px; border-top-style: solid; border-left-style: solid; border-top-color: #CC0000; border-left-color: #CC0000;">
                        <img src="LogoWebBill.gif" width="78" height="86">
                    </td>
                    <td valign="top">
                        <table width="651" border="0" cellpadding="0" cellspacing="0">
                            <tbody><tr>
                                <td height="22" style="border-top-width: 1px;border-left-width: 1px;    border-top-style: solid; border-left-style: solid; border-top-color: #CC0000; border-left-color: #CC0000;border-right-width: 1px;border-right-style: solid;border-right-color: #CC0000;">
                                    <p align="center" class="FieldCaption">
                                        <strong><font size="2">LAHORE ELECTRIC SUPPLY COMPANY - ELECTRICITY CONSUMER BILL(MDI)</font></strong></p>
                                </td>
                            </tr>
                            <tr>
                                <td height="18" style="border-left-width: 1px; border-left-style: solid; border-left-color: #CC0000; border-right-width: 1px;border-right-style: solid;border-right-color: #CC0000;">
                                    <div align="center">
                                        <p class="FieldCaption">
                                            http://www.lesco.gov.pk</p>
                                    </div>
                                </td>
                            </tr>
                            <tr>
                                <td valign="top">
                                    <table width="651" border="0" cellpadding="0" cellspacing="0">
                                        <tbody><tr class="FieldCaption">
                                            <td width="248" height="19" style="border-top-width: 1px;   border-left-width: 1px; border-top-style: solid; border-left-style: solid; border-top-color: #CC0000; border-left-color: #CC0000;">
                                                <div align="left">
                                                    &nbsp;CUSTOMER I.D.
                                                </div>
                                            </td>
                                            <td width="51" style="border-top-width: 1px;    border-left-width: 1px; border-top-style: solid; border-left-style: solid; border-top-color: #CC0000; border-left-color: #CC0000;">
                                                <div align="center">
                                                    &nbsp;ED@</div>
                                            </td>
                                            <td width="86" style="border-top-width: 1px;    border-left-width: 1px; border-top-style: solid; border-left-style: solid; border-top-color: #CC0000; border-left-color: #CC0000;">
                                                <div align="center">
                                                    &nbsp;BILL MONTH</div>
                                            </td>
                                            <td width="89" style="border-top-width: 1px;    border-left-width: 1px; border-top-style: solid; border-left-style: solid; border-top-color: #CC0000; border-left-color: #CC0000;">
                                                <div align="center">
                                                    &nbsp;READING DATE</div>
                                            </td>
                                            <td width="89" class="FieldCaption" style="border-top-width: 1px;   border-left-width: 1px; border-top-style: solid; border-left-style: solid; border-top-color: #CC0000; border-left-color: #CC0000;">
                                                <div align="center">
                                                    &nbsp;ISSUE DATE</div>
                                            </td>
                                            <td width="89" style="border-top-width: 1px;border-left-width: 1px; border-top-style: solid; border-left-style: solid; border-top-color: #CC0000; border-left-color: #CC0000;border-right-width: 1px;border-right-style: solid;border-right-color: #CC0000;">
                                                <div align="center">
                                                    <font color="#0066ff">&nbsp;DUE DATE</font></div>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td height="28" class="GeneralText" style="border-top-width: 1px;   border-left-width: 1px; border-top-style: solid; border-left-style: solid; border-top-color: #CC0000; border-left-color: #CC0000;">
                                                <div align="left">
                                                    &nbsp;2000125</div>
                                            </td>
                                            <td class="GeneralText" style="border-top-width: 1px;   border-left-width: 1px; border-top-style: solid; border-left-style: solid; border-top-color: #CC0000; border-left-color: #CC0000;">
                                                <div align="center">
                                                    &nbsp;1.0%</div>
                                            </td>
                                            <td class="GeneralText" style="border-top-width: 1px;   border-left-width: 1px; border-top-style: solid; border-left-style: solid; border-top-color: #CC0000; border-left-color: #CC0000;">
                                                <div align="center">
                                                    &nbsp;Oct 18</div>
                                            </td>
                                            <td class="GeneralText" style="border-top-width: 1px;   border-left-width: 1px; border-top-style: solid; border-left-style: solid; border-top-color: #CC0000; border-left-color: #CC0000;">
                                                <div align="center">
                                                    &nbsp;02 NOV 18</div>
                                            </td>
                                            <td class="GeneralText" style="border-top-width: 1px;   border-left-width: 1px; border-top-style: solid; border-left-style: solid; border-top-color: #CC0000; border-left-color: #CC0000;">
                                                <div align="center">
                                                    &nbsp;08 NOV 18</div>
                                            </td>
                                            <td class="GeneralText" style="border-top-width: 1px;border-left-width: 1px;    border-top-style: solid; border-left-style: solid; border-top-color: #CC0000; border-left-color: #CC0000;border-right-width: 1px;border-right-style: solid;border-right-color: #CC0000;">
                                                <div align="center">
                                                    &nbsp;23 11 2018</div>
                                            </td>
                                        </tr>
                                    </tbody></table>
                            </td></tr>
                        </tbody></table>
                    </td>
                </tr>
            </tbody></table>
        </td>
    </tr>

1 Ответ

0 голосов
/ 18 ноября 2018

Получите innerHTML / outerHTML Таблицы и извлеките его с помощью HTML-парсера

Найдите элемент, который можно идентифицировать, а затем получите внутренний html элемента, чтобы извлечь его html.

 string html = driver.FindElement(By.XPath("//img [@src='LogoWebBill.gif']/parent::td/following-sibling::td"").GetAttribute("innerHTML")

Затем проанализируйте его в автономном режиме с помощью HTML-анализатора ( Html Agility Pack )

var doc = new HtmlDocument();
doc.LoadHtml(html);

var title = doc.DocumentNode
 .SelectNodes("//tbody/tr")
 .First()
 . InnerText;
// This returns LAHORE ELECTRIC SUPPLY COMPANY - ELECTRICITY CONSUMER BILL(MDI)
// Similarly find the header and rows data with loops
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...