Python 3 を使ってhtmlファイルとして保存したあるサイトのテーブルを引き抜きたいと思います。Pandasのモデュールを使って、以下のコードをPycharmでいれるとテーブルは引き抜く事はできました。
Python3
1import pandas as pd 2 3filename = "c:\users\someone\desktop\example.html" 4path = open(filename, 'r') 5df = pd.io.html.read_html(filename, encoding='Shift JIS', attrs= {'class':'list2'})[0:3]
テーブルは三つあります。
HTML
1<table class="list2"> 2 <tbody> 3 <tr class="bg3"> 4 <tr class="bg3"> 5 <tr class="bg5"> 6 <tr class="bg5"> 7 <tr class="bg1"> 8 <tr class="bg1"> 9 <tr class="bg5"> 10 <tr class="bg5"> 11 <tr class="bg1"> 12 <tr class="bg1"> 13 <tbody> 14<span id="list-title"></span> 15<table class="list2"> 16 <tbody> 17 <tr class="bg3"> 18 <tr class="bg3"> 19 <tr class="bg5"> 20 <tr class="bg5"> 21 <tr class="bg1"> 22 <tr class="bg1"> 23 <tr class="bg5"> 24 <tr class="bg5"> 25 <tr class="bg1"> 26 <tr class="bg1"> 27 <tbody> 28<span id="list-title"></span> 29<table class="list2"> 30 <tbody> 31 <tr class="bg3"> 32 <tr class="bg3"> 33 <tr class="bg5"> 34 <tr class="bg5"> 35 <tr class="bg1"> 36 <tr class="bg1"> 37 <tr class="bg5"> 38 <tr class="bg5"> 39 <tr class="bg1"> 40 <tr class="bg1"> 41 <tbody>
このサイトの書き方が悪いと思うのですが、項目が2行になっているためそれに基づくデータもすべて2行ずつ出てきます。
例えば、こんな感じです。
項目|項目|項目|項目
項目|項目|項目|項目
AAA | AAA | AAA | AAA
AAA | AAA | AAA | AAA
BBB | BBB |BBB | BBB
BBB | BBB |BBB | BBB
2行ずつではなく、以下のように一行に変えたいのです。あと、3つのテーブルを一つにしたいです。
項目|項目|項目|項目|項目|項目|項目|項目
AAA | AAA | AAA | AAA | AAA | AAA | AAA | AAA
BBB | BBB |BBB | BBB | BBB | BBB |BBB | BBB
どうすればいいのか調べても調べても分からなく困っています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/21 01:39
2020/01/21 01:42
2020/01/21 01:50
2020/01/21 02:28
2020/01/21 04:04
2020/01/21 04:09
2020/01/21 04:25