将BeautifulSoup提取转换为sqlite表

时间:2017-01-20 22:34:29

标签: python sqlite

我有一个html表结构,看起来像:

<table>
    <tbody>
        <tr>
            <td>
                <ul>
                </ul
            </td>
            <td>
                <table>
                    <tbody>
                        <tr></tr>
                        <tr></tr>
                        <tr></tr>
                    </tbody>
                </table>
                <table>  -- (table structure I am interested in)
                    <tbody>
                        <tr>
                            <td class="dte"></td>
                            <td class="id"></td>
                            <td class="desc"></td>
                        </tr>
                        <tr>
                            <td class="dte"></td>
                            <td class="id"></td>
                            <td class="desc"></td>
                        </tr>
                        <tr>
                            <td class="dte"></td>
                            <td class="id"></td>
                            <td class="desc"></td>
                        </tr>
                    </tbody>
                </table>
            </td>
        </tr>
    </tbody>
</table>

使用python / BeautifulSoup,我设法将输出打印到屏幕上,如: -

[b'16 March', b'987654', b'Something happens on this date']
[b'23 March', b'321987', b'Something happens on this date']
[b'26 March', b'123456', b'Something happens on this date']

使用以下代码(我已经从本网站上的各个帖子一起入侵): -

for mytable in soup.find('body').find_all('table'):
        #print (len(mytable))
        for trs in mytable.find_all('tr'):
            tds = trs.find_all('td', class_='dte id desc'.split())

            if tds: # checks if 'tds' has value.  if YES then block is executed
                row = [elem.text.strip().encode('utf-8') for elem in tds]
                print (row)

            else:
                continue # 'row' item is empty, proceed to next loop

2个问题:

  1. 当输出打印到屏幕时,我在第一行得到整个表结构(所以上面的每个例子都会在第一行输出(实际表中有大约100个条目的长度))然后从第二行我每行得到一个条目(如上所示),这就是我想要的。如何忽略或不输出第一行的完整结构?为什么我会这样做?
  2. 我想将上面显示的结果转换为sqlite3表结构,我稍后会将其转换为生产mssql环境。根据我得到的输出,我无法找到一种方法。

0 个答案:

没有答案