美しいスープでテーブルヘッダーをこする

bonsvr

私はテーブルをこすり取ろうとしています:

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>

    <table class="table ajax">
    <thead>
        <tr>
            <th scope="col">
                <span>NO.</span>
            </th>
            <th scope="col" data-index="1">
                    <span>Year of initiation</span>
                              
            </th>
            <th scope="col" data-index="2">
                
                    <span>Short case name</span>
                    
                
            </th>
            <th scope="col" data-index="3" style="display: none;">
                
                    <span>Full case name</span>
                    
                
            </th>
            <th scope="col" data-index="4">
               
                    <span>Applicable IIA</span>
                    
                
        </tr>
    </thead>
    <tbody>
            <tr>
                <th scope="row">1</th>
                <td data-index="1">
                    2019
                </td>
                <td data-index="2">
                   Alcosa v. Kuwait</a>
                </td>
                <td data-index="3" style="display: none;">
                    Alcosa v. The State of Kuwait
                </td>
                <td data-index="4">
Kuwait - Spain BIT(2005)</a>                </td>
                <td data-index="5"> UNCITRAL
               </td>
</tbody>
</table>

</body>
</html>

次のコードで:

html = driver.page_source
bs=BeautifulSoup(html, "lxml")
table = bs.find('table', { 'class' : 'ajax' })
table_body=table.find('tbody')
rows = table_body.findAll('tr')

with open('son.csv', "wt+") as f:
    writer = csv.writer(f)
    for row in rows:
        cols = row.find_all('td')
        cols = [x.get_text(strip=True, separator='|') for x in cols]
        writer.writerow(cols)

テーブルの行を取得できますが、テーブルのヘッダーを取得できません。

これは私が取得したい出力です:

NO. Year of initiation  Short case name Applicable IIA
1   2019    Alcosa v. Kuwait    Kuwait - Spain BIT(2005)    UNCITRAL

どうすればいいですか?ありがとう。

アンドレイ・ケセリー

このスクリプトを試して、テーブルをcsvに保存できます。

import csv
from bs4 import BeautifulSoup    


txt = '''<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>

    <table class="table ajax">
    <thead>
        <tr>
            <th scope="col">
                <span>NO.</span>
            </th>
            <th scope="col" data-index="1">
                    <span>Year of initiation</span>
                              
            </th>
            <th scope="col" data-index="2">
                
                    <span>Short case name</span>
                    
                
            </th>
            <th scope="col" data-index="3" style="display: none;">
                
                    <span>Full case name</span>
            </th>
            <th scope="col" data-index="4">               
                    <span>Applicable IIA</span>
                    
             </th>   
        </tr>
    </thead>
    <tbody>
            <tr>
                <th scope="row">1</th>
                <td data-index="1">
                    2019
                </td>
                <td data-index="2">
                   Alcosa v. Kuwait
                </td>
                <td data-index="3" style="display: none;">
                    Alcosa v. The State of Kuwait
                </td>
                <td data-index="4">
                    Kuwait - Spain BIT(2005)
                </td>
                <td data-index="5"> UNCITRAL
               </td>
            </tr>
</tbody>
</table>

</body>
</html>'''


soup = BeautifulSoup(txt, 'html.parser')

headers = [th.get_text(strip=True) for th in soup.select('table.ajax thead th')]
rows = []
for row in soup.select('table.ajax tbody tr'):
    data = [d.get_text(strip=True) for d in row.select('th, td')]
    rows.append(data)
   
with open('son.csv', "wt+") as f:
    writer = csv.writer(f)
    writer.writerow(headers)
    for row in rows:
        writer.writerow(row)

書き込みson.csv(LibreOfficeからのスクリーンショット):

ここに画像の説明を入力してください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Pythonで美しいスープを使用してテーブルをこする

分類Dev

美しいスープとpython3.xでテーブルをこする

分類Dev

美しいスープとパイソンでテーブルをこする

分類Dev

美しいスープで隠されたテーブルをこする方法

分類Dev

美しいスープでテーブルをこするのが難しい4

分類Dev

美しいスープでデータテーブルを解析する

分類Dev

美しいスープを使用してhtmlテーブルを解析する

分類Dev

美しいスープでスキーマをこする?

分類Dev

親/兄弟trテーブルクラスを抽出する美しいスープ

分類Dev

ウェブページのすべてのオッズテーブルをこするための美しいスープ

分類Dev

美しいスープでHTMLテーブルの情報を探す

分類Dev

美しいスープを使ってテーブルをウェブスクレープする方法

分類Dev

美しいスープで現場をこする

分類Dev

美しいスープでラムダ関数を使用する

分類Dev

美しいスープでラムダ関数を使用する

分類Dev

ブートストラップを使用してテーブルヘッダーの色を変更する

分類Dev

ヘッダーサイズを乱すことなく、htmlテーブルヘッダーでのスクロールを修正しました

分類Dev

いくつかのテーブルヘッダーのスティッキーヘッダーを作成するにはどうすればよいですか?

分類Dev

美しいスープでヤフーの収益カレンダーをこする方法

分類Dev

ifステートメント内のforループヘッダーを変更することは可能ですか?

分類Dev

美しいスープを使用してhtmlでダブルクラスのテーブルを読み取る方法

分類Dev

テーブルからデータを引き出す美しいスープ

分類Dev

Rマークダウン-ループ内のヘッダーとしてテキストをフォーマットすることは、最初のループ反復でのみ機能しているようです

分類Dev

AWSRedshift外部テーブルのヘッダー行をスキップする

分類Dev

javascriptなしでコンテナの後ろに絶対テーブルヘッダーをクリップすることは可能ですか?

分類Dev

テーブルヘッダーを一貫してラップする方法は?

分類Dev

美しいスープを使用してHTMLから特定のヘッダーを抽出します

分類Dev

Excel VBAで、セル値をグローバル配列に格納し、ComboBoxドロップダウンリストに入力するときに、テーブルヘッダーをループするにはどうすればよいですか?

分類Dev

美しいスープでCSVファイルを作成する

Related 関連記事

  1. 1

    Pythonで美しいスープを使用してテーブルをこする

  2. 2

    美しいスープとpython3.xでテーブルをこする

  3. 3

    美しいスープとパイソンでテーブルをこする

  4. 4

    美しいスープで隠されたテーブルをこする方法

  5. 5

    美しいスープでテーブルをこするのが難しい4

  6. 6

    美しいスープでデータテーブルを解析する

  7. 7

    美しいスープを使用してhtmlテーブルを解析する

  8. 8

    美しいスープでスキーマをこする?

  9. 9

    親/兄弟trテーブルクラスを抽出する美しいスープ

  10. 10

    ウェブページのすべてのオッズテーブルをこするための美しいスープ

  11. 11

    美しいスープでHTMLテーブルの情報を探す

  12. 12

    美しいスープを使ってテーブルをウェブスクレープする方法

  13. 13

    美しいスープで現場をこする

  14. 14

    美しいスープでラムダ関数を使用する

  15. 15

    美しいスープでラムダ関数を使用する

  16. 16

    ブートストラップを使用してテーブルヘッダーの色を変更する

  17. 17

    ヘッダーサイズを乱すことなく、htmlテーブルヘッダーでのスクロールを修正しました

  18. 18

    いくつかのテーブルヘッダーのスティッキーヘッダーを作成するにはどうすればよいですか?

  19. 19

    美しいスープでヤフーの収益カレンダーをこする方法

  20. 20

    ifステートメント内のforループヘッダーを変更することは可能ですか?

  21. 21

    美しいスープを使用してhtmlでダブルクラスのテーブルを読み取る方法

  22. 22

    テーブルからデータを引き出す美しいスープ

  23. 23

    Rマークダウン-ループ内のヘッダーとしてテキストをフォーマットすることは、最初のループ反復でのみ機能しているようです

  24. 24

    AWSRedshift外部テーブルのヘッダー行をスキップする

  25. 25

    javascriptなしでコンテナの後ろに絶対テーブルヘッダーをクリップすることは可能ですか?

  26. 26

    テーブルヘッダーを一貫してラップする方法は?

  27. 27

    美しいスープを使用してHTMLから特定のヘッダーを抽出します

  28. 28

    Excel VBAで、セル値をグローバル配列に格納し、ComboBoxドロップダウンリストに入力するときに、テーブルヘッダーをループするにはどうすればよいですか?

  29. 29

    美しいスープでCSVファイルを作成する

ホットタグ

アーカイブ