LoginSignup
1
2

More than 3 years have passed since last update.

42日目 テーブルをスクレイピングしてCSVで保存

Posted at

今日もスクレイピングにチャレンジしています。

こちらの記事をお手本にしました。

【Python】BeautifulSoupを使ってテーブルをスクレイピング

ところが最初からヘンテコなデータが吐き出されている。なんでだー!?

複数のテーブルがあった!

ソースをよく見たらテーブルが10個以上あり、最初のテーブルのみ出力されていました。
幸い、それぞれdivではさんでいましたので、

こちらのサイトを参考に、divで絞ってテーブルを指定してみました。
Beautiful Soupを使ってスクレイピング

<div id="hoge">
  <table>
    <tr>
        <td>
            <div class="name">fugaの里</div>
        </td>
        <td>
            <div class="button"><a href="fuga.html"><div>
        </td>
    </tr>
  </table>
</div>
# テーブルを指定
div = bsObj.find('div',id="results_list")
table = div.select_one("table")
rows = table.findAll("tr")

だけどリンク先が表示されません。
リンク先は別途取得するみたいです。

タグ内にあるリンク先を取得方法について

with open("ebooks.csv", "w", encoding='utf-8') as file:
    writer = csv.writer(file)
    for row in rows:
        csvRow = []
        for cell in row.findAll(['td', 'th']):
            csvRow.append(cell.find(class_="name").get_text())
            csvRow.append(cell.find(class_="button").get('href'))
        writer.writerow(csvRow)

できました!
スクレイピングしたら簡単かと思ってましたが、手作業の方が早かったかな・・・?

(所要時間 90分)

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2