『スケベ博士』を作ってみよう!② CSVファイルの作成からスクレイピングのコーディング途中まで
最初に
こんにちは!かるろすです。
引き続き『スケベ博士』開発について書いていこうと思います!
この記事ではCSVファイルの作り方からスクレイピングのコーディングの途中まで。
コーディングの実行部分では列ごとに解説していきます。
第一弾はこちら。
このシリーズではProgateを終わらせた直後の文系プログラミング初心者が『スケベ博士』開発においてわからなかったところをすべて説明していきます。
『スケベ博士』開発
CSVファイルの作り方
次のタスクは"default.csv"というCSVファイルを作る事。
<用語解説>
CSVファイル:"Comma Separatved Value"の略称
その名の通り値をカンマで区切ったファイルのこと。
ノートパッドで値をカンマで区切った後、CSVファイルで保存すれば作成する事ができます。
DaiさんのNoteを見ながら"default.csv"を作成。
後でこのCSVファイルをpandasで読み込むコードを書くのですが、その際にCSVファイルをプロジェクトファイルに入れていないといけません。
PyCharmProjectsというファイルの『スケベ博士』のプロジェクトファイルに入れれば大丈夫です。
C:\Users\Kazut\PycharmProjects\test2\HH
自分の場合はここにCSVファイルを移しました。
僕は『スケベ博士』を間違えて『ヘンタイ博士』だと思っていたので、プロジェクトの名前がHHになってます笑
こんな感じでPyCharmに表示されます。
このCSVファイルをエクセルで開くとこんな感じ。
今後Seleniumで集めた女優の名前と画像のURLを"name"と"image"の下に追加していきます。
アダルトサイトのCSSセレクター設定
では実際にコードを書いていきます。
<注意点>
コードを書くときは、少し書いてランしてを繰り返すことが大切だそうです。
書き終わってランするとエラーがどこにあるのかわからなくなるので。
最初はNoteに書いてある通り、seleniumとpandasをインポートし、クロームドライバーのPathを指定し、そしてPandasで”default.csv"を読み込み変数を与えます。
<注意点>
ここでNoteの通りに
df = pandas.read_csv("default.csv")と書くと
'can't find a csv file named "default.csv"'
というエラーが。
いろいろ調べてみると、default.csvのPathを全部書かないとダメでした。
こんな感じで指定してあげれば大丈夫です。
index_col = 0はindex列を指定するために使います。
詳しくはこちらの記事を読んでみてください。
<注意点>
あとここの説明ではスキップされていたのですが、このもろもろの設定のところに
と書くのを忘れずに。
<用語解説>
saruwakakun.comこちらの記事に詳しく説明されているので参考までに。
では説明通り次へボタン、各女優のClass、女優の名前と画像の要素を選択して、変数を足していきます。
<注意点>
AVサイトを実際に開くことになるので部屋で行いましょう笑
スクレイピングの実行部分
ここから先は各列ごとに説明していきます。
Line 1:
<コード解説>
Len():文字列の文字数を返す関数
今回は
"Len(browser.find_elements_by_css_selector(..."
というコードになっています。
この場合は次へボタンのエレメントの数をリターンしてくれます。
>0とすることで、次へボタンがある限り以下の動作を繰り返せと指示します。
Line 2:
ただのプリント関数。
Line 3:
find_elements_by_css_selectorで女優divのエレメントを取ってきて変数を与えます。
Line 4:
Line 3でいくつのエレメントを取ってきたのかプリントします。
このエロサイトの場合、1ページにつき40の女優が載っていますので、40と帰ってくるはず。
Line 5:
forループを使って、各女優に対して以下の動作を行います。
Line 6:
<コード解説>
try関数:エラーの対処方を指定する際に使う関数
Try:
Except:
Finally:
という構文になっています。
”try:”の後はエラーが発生するかもしれないが、実行したい動作を指定します。
"Except:”の後はエラーが発生した場合の動作を指定します。
”Finally:"ではエラーが発生しようがしまいが行う動作を指定します。
Line 6からLine 12まではTryブロックとなっています。
さて、実行部分の途中ですが、Tryブロックの中身の説明以降は次の記事で説明したいと思います。
お読みいただきありがとうございました!