【问题标题】:Android extract multiple tables from websiteAndroid从网站中提取多个表
【发布时间】:2019-02-24 03:37:55
【问题描述】:

在卡住了几周后,我能够自动登录网站并下载 Excel 文件,还能够查看网站正文。

我还有一个问题,希望您能提供帮助。如何提取每个表?每个表的数据将被插入到一个 sqllite 数据库中。以下是来自网站的表格示例:

<tr class="odd">
                <td colspan="10" style="text-align:center;font- 
 size:12px;font-weight:600;">
                    122 Address
                </td>
            </tr>

        <tr class="odd">
            <td>122Address</td>
            <td>Guest Name/td>
            <td>Aug 06 -- Sep 07</td>
            <td>No</td>
            <td>No</td>
            <td>No</td>
            <td>No</td>
            <td>No</td>
09-19 17:11:36.396 14017-14017/com.pmapp.mikeys.propertymanagementapp 
I/System.out:           <td>No</td>
            <td>Agent Name</td>
        </tr>

            <tr class="odd">
                <td>&nbsp;</td>
                <td colspan="9">Remarks</td>
            </tr>



            <tr class="even">
                <td colspan="10" style="text-align:center;font-size:12px;font-weight:600;">
                    154 Address
                </td>
            </tr>

        <tr class="even">
            <td>154Address</td>
            <td>Guest Name</td>
            <td>Aug 30 -- Sep 02</td>
            <td>No</td>
            <td>No</td>
            <td>No</td>
            <td>No</td>
            <td>No</td>
09-19 17:11:36.397 14017-14017/com.pmapp.mikeys.propertymanagementapp I/System.out:             <td>No</td>
            <td>Agent Name</td>
        </tr>


        <tr class="odd">
            <td>154Address</td>
            <td>Guest Name</td>
            <td>Sep 07 -- Sep 09</td>
            <td>No</td>
            <td>No</td>
            <td>No</td>
            <td>No</td>
            <td>No</td>
            <td>No</td>
            <td>Agent Name</td>
        </tr>


        <tr class="even">
            <td>154Address</td>
            <td>Guest Name</td>
            <td>Sep 14 -- Sep 16</td>
            <td>No</td>
            <td>No</td>
            <td>No</td>
            <td>No</td>
09-19 17:11:36.398 14017-14017/com.pmapp.mikeys.propertymanagementapp 
I/System.out:           <td>No</td>
            <td>No</td>
            <td>Agent Name</td>
        </tr>


        <tr class="odd">
            <td>154Address</td>
            <td>Guest Name</td>
            <td>Sep 16 -- Sep 19</td>
            <td>No</td>
            <td>No</td>
            <td><div style="color:red;font-weight:600;">PH</div></td>
            <td>No</td>
            <td>No</td>
            <td>No</td>
09-19 17:11:36.399 14017-14017/com.pmapp.mikeys.propertymanagementapp 
I/System.out:           <td>Agent Name/td>
        </tr>

            <tr class="odd">
                <td>&nbsp;</td>
                <td colspan="9">Remarks</td>
            </tr>


        <tr class="even">
            <td>154Address</td>
            <td>Guest Name</td>
            <td>Sep 20 -- Sep 23</td>
            <td>No</td>
            <td>No</td>
            <td><div style="color:red;font-weight:600;">PH</div></td>
            <td>No</td>
09-19 17:11:36.400 14017-14017/com.pmapp.mikeys.propertymanagementapp 
I/System.out:           <td>No</td>
            <td>No</td>
            <td>Agent Name</td>
        </tr>


        <tr class="odd">
            <td>154Address</td>
            <td>Guest Name</td>
            <td>Sep 28 -- Sep 30</td>
            <td>No</td>
            <td>No</td>
            <td>No</td>
            <td>No</td>
            <td>No</td>
            <td>No</td>
            <td>Agent Name</td>
        </tr>

09-19 17:11:36.401 14017-14017/com.pmapp.mikeys.propertymanagementapp 
I/System.out:       
        <tr class="even">
            <td>154Address</td>
            <td>Guest Name</td>
            <td>Sep 30 -- Oct 06</td>
            <td>No</td>
            <td>No</td>
            <td><div style="color:red;font-weight:600;">PH</div></td>
            <td><div style="color:red;font-weight:600;">GR</div></td>
            <td>No</td>
            <td>No</td>
            <td>Agent Name</td>
        </tr>



09-19 17:11:36.402 14017-14017/com.pmapp.mikeys.propertymanagementapp 
I/System.out:           <tr class="odd">
                <td colspan="10" style="text-align:center;font- 
size:12px;font-weight:600;">
                    165 Street address
                </td>
            </tr>

        <tr class="odd">
            <td>165Address</td>
            <td>Guest Name</td>
            <td>Sep 01 -- Sep 03</td>
            <td>No</td>
            <td>No</td>
            <td>No</td>
            <td>No</td>
            <td>No</td>
            <td>No</td>
            <td>Agent Name</td>
        </tr>

希望你能帮上忙。所以我会为每个项目做一个变量,例如:

Address,
Guest Name,
Check In, 
Check Out,
Early Arrival,
Late Departure,
Pool Heat,
Grill,
Crib,
High Chair,
Agent,
Remarks (if any)

【问题讨论】:

  • 好的,我能够提取 tds,但我如何只获取 VALUE 内的值??

标签: android html web-scraping html-table


【解决方案1】:

使用JSoup 并按照他们的文档从 DOM 获取表格。在你的依赖中添加compile 'org.jsoup:jsoup:1.11.3'

【讨论】:

  • 我使用 Httpclient 登录网站。如果我使用 jsoup,我认为我不会登录。我尝试使用 jsoup 登录,但我的代码不起作用,但是当我使用 httpclient 时,我能够自动登录
  • 登录后你会得到一个html格式的表格吗?
  • 那是正确的,html格式的部分表格在我上面发布的代码中。
  • 所以你可以使用 jsoup 来解析它。 Httpclient 创建连接并获取响应。使用 jsoup 仅解析该响应。
  • 好的,我能够提取 tds,但我如何只获取 VALUE 中的值
猜你喜欢
  • 2015-06-05
  • 1970-01-01
  • 1970-01-01
  • 2015-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-23
相关资源
最近更新 更多