0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PythonによるWebスクレイピング-入門編、その2 - テキストのスクレイピング

Posted at

Webスクレイピングの学習が進みました。今回はテキストのスクレイピングまで学習しました。

テキストデータの取得

ページからテキストを抜き出す処理を行います。このページから講師情報を取得します。

スクリーンショット 2023-04-30 120322.png

#ユーザーネームの要素を取得
elem_username = browser.find_element_by_id("name")
elem_username.text

#所属企業
elem_company = browser.find_element_by_id("company")
elem_company.text

#生年月日
elem_birthday = browser.find_element_by_id("birthday")
elem_birthday.text

#出身地
elem_come_from = browser.find_element_by_id("come_from")
elem_come_from.text

#hobby
elem_hobby = browser.find_element_by_id("hobby")
hobby = elem_hobby.text

#replaceを使って改行コードをコンマに変える
hobby02 = hobby.replace("\n",",")
hobby02

スクリーンショット 2023-04-30 124312.png

テキストデータの一括取得

テーブルから一括でテキストデータを取得する方法を考えます。
thタグに必要なテキストがが含まれているので、タグ名を使って複数の要素を取得します。

#thの要素を取得 - 一番最初の要素のみが取得される
elem_thtext = browser.find_element_by_tag_name("th")
elem_thtext.text

#複数要素を一括取得 - thタグとなっている要素全て取得する(list型で表示)
elem_thtext = browser.find_elements_by_tag_name("th")
elem_thtext

#取得した要素
for i in range(0, len(elem_thtext)):
    print(elem_thtext[i].text)

#取得した要素をリストに
keys = []
elem_thtext = browser.find_elements_by_tag_name("th")

for elem_th in elem_thtext:
    text = elem_th.text
    keys.append(text)

print(keys)

スクリーンショット 2023-04-30 124827.png

テーブルのキー側が取得できたので、次はバリュー側を取得します。

#tdの方を取得する
elem_tdtext= browser.find_elements_by_tag_name("td")
elem_tdtext

#取得した要素
for i in range(0, len(elem_tdtext)):
    print(elem_tdtext[i].text)
    
#取得した要素をリストに
values = []
elem_tdtext = browser.find_elements_by_tag_name("td")

for elem_td in elem_tdtext:
    text = elem_td.text
    values.append(text)

print(values)

スクリーンショット 2023-04-30 124827.png

CSVにして出力

スクレイピングしたテキストをCSVファイルにして出力します。
データフレームの作成にはPandasを用います。Pandasは2次元データの作成とその入力・出力に向いているライブラリーです。

import pandas as pd
df=pd.DataFrame()

df["項目"] = keys
df[""] = values
df

#csvに出力(インデックスは無し)
df.to_csv("講師情報.csv", index = false)

スクリーンショット 2023-04-30 125240.png

次回は画像データのスクレイピングについて学習します。

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?