Python+SeleniumでDMM電子書籍の購入済み書籍の一覧を取得
前々から買った本の一覧を見たかったのだが、以前試行錯誤しても全く上手くいかなかったので、
を読んで勉強して再トライした1。
Table of Contents
実際のコードと実行結果
from selenium import webdriver
import time
import dmm_user_pass
# ユーザー名、パスワードを漏洩しないための簡易的な方法
# (同ディレクトリのdmm_user_pass.pyを絶対公開しないようにする)
USER = dmm_user_pass.USER
PASS = dmm_user_pass.PASS
# PhantomJSのドライバーを得る
browser = webdriver.PhantomJS()
browser.implicitly_wait(5)
# ログインページにアクセス(ログインすると即購入済みページに遷移されるはず)
url_login = "https://accounts.dmm.com/service/login/password"
browser.get(url_login)
print("ログインページにアクセスしました")
# テキストボックスに文字を入力
e = browser.find_element_by_id("login_id")
e.clear()
e.send_keys(USER)
e = browser.find_element_by_id("password")
e.clear()
e.send_keys(PASS)
# フォームを送信
browser.find_element_by_xpath("//form[@name='loginForm']//input[@type='submit']").click()
print("情報を入力してログインボタンを押しました")
time.sleep(10)
# DMM電子書籍の購入済みページを表示
# page1からloopで存在しないページになった場合にはurlが自動的に、
# https://book.dmm.com/library/?age_limit=all&expired=1になる(遷移したいページとcurrent urlが不一致)
url_purchased = 'https://book.dmm.com/library/?age_limit=all&expired=1&sort=old&page='
for i in range(1, 100):
page_i = url_purchased + str(i)
browser.get(page_i)
time.sleep(5)
if page_i != browser.current_url:
break # 上のコメント通りに抜ける処理
# 購入済みのタイトルを列挙
links = browser.find_elements_by_css_selector(
".m-boxListBookProductBlock__main__info__ttl > a")
for a in links:
title = a.text
print("-", title)
/usr/local/lib/python3.7/site-packages/selenium/webdriver/phantomjs/webdriver.py:49: UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead
warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless '
ログインページにアクセスしました
情報を入力してログインボタンを押しました
- モブサイコ100
- おしえて! ギャル子ちゃん
- 無邪気の楽園
- とんでもスキルで異世界放浪メシ
- 異世界でスキルを解体したらチートな嫁が増殖しました 概念交差のストラクチャー
- ブラウンシュガァデイズ
- ウメハラ FIGHTING GAMERS!
- なれる!SE
- 神達に拾われた男
- 失格紋の最強賢者 〜世界最強の賢者が更に強くなるために転生しました〜
- 世界最強の後衛 〜迷宮国の新人探索者〜
- ニートだけどハロワにいったら異世界につれてかれた
- 無職転生 〜ロキシーだって本気です〜
- 宝くじで40億当たったんだけど異世界に移住する
- ゴブリンスレイヤー
- ゴブリンスレイヤー外伝:イヤーワン
- 転生したらドラゴンの卵だった〜イバラのドラゴンロード
- 転生したら剣でした
- 骸骨騎士様、只今異世界へお出掛け中
- なんでここに先生が!?
- 強くてニューサーガ
- 冒険者になりたいと都に出て行った娘がSランクになってた 黒髪の戦乙女
- 異世界魔法は遅れてる!
- 即死チートが最強すぎて、異世界のやつらがまるで相手にならないんですが。-ΑΩ-
- THENEWGATE
- 異世界チート魔術師
- シロクマ転生 森の守護神になったぞ伝説
- 蜘蛛ですが、なにか?
- 異世界のんびり農家
- 没落予定なので、鍛冶職人を目指す
- 無職転生 〜異世界行ったら本気だす〜
- スライムライフ
- とあるおっさんのVRMMO活動記
- 29歳独身中堅冒険者の日常
- 100万の命の上に俺は立っている ワケあり無料版 5
- 最強の職業は勇者でも賢者でもなく鑑定士(仮)らしいですよ?
- 野生のラスボスが現れた!黒翼の覇王
- 100万の命の上に俺は立っている
- 獣医さんのお仕事in異世界
- 月が導く異世界道中
- ブサメンガチファイター
- 平兵士は過去を夢見る
- 自重しない元勇者の強くて楽しいニューゲーム
- 努力しすぎた世界最強の武闘家は、魔法世界を余裕で生き抜く。
- 最強呪族転生〜魔術オタクの理想郷(ユートピア)〜
- 魔拳のデイドリーマー
- 異世界で『黒の癒し手』って呼ばれています
- のんびりVRMMO記
- 異世界でカフェを開店しました。
- 邪竜転生
- 望まぬ不死の冒険者
- 黒の召喚士
- 村人ですが何か?
- アルゲートオンライン
- 効率厨魔導師、第二の人生で魔導を極める
- ワールド・カスタマイズ・クリエー
- 乙女ゲームの破滅フラグしかない悪役令嬢に転生してしまった…
- 成長チートでなんでもできるようになったが、無職だけは辞められないようです
- マズ飯エルフと遊牧暮らし
- 賢者の弟子を名乗る賢者 THE COMIC
- 異世界で最強の杖に転生した俺が嫌がる少女をムリヤリ魔法少女にPする!
- 剣士を目指して入学したのに魔法適性9999なんですけど!?
- 俺の家が魔力スポットだった件 〜住んでいるだけで世界最強〜
- 異世界迷宮でハーレムを
- 欲望パンドラ
- 転生しちゃったよ(いや、ごめん)
- さようなら竜生、こんにちは人生
- 素材採取家の異世界旅行記
- ヤンキーは異世界で精霊に愛されます。
- 俺と蛙さんの異世界放浪記
- 軍オタが魔法世界に転生したら、現代兵器で軍隊ハーレムを作っちゃいました!?
- 真の仲間じゃないと勇者のパーティーを追い出されたので、辺境でスローライフすることにしました
- ありふれた日常で世界最強
- ありふれた職業で世界最強
- 異世界を制御魔法で切り開け!
- アルマディアノス英雄伝
- 異世界転生騒動記
- じょしラク!
- 駆除人
- 異世界で孤児院を開いたけど、なぜか誰一人巣立とうとしない件【カラー増量版】
- 異世界おじさん
- 辺境の老騎士 バルド・ローエン
- 宝石の国
- うちの娘の為ならば、俺はもしかしたら魔王も倒せるかもしれない。
- てのひら開拓村で異世界建国記
- ガチャを回して仲間を増やす 最強の美少女軍団を作り上げろ THE COMIC
- 二度目の勇者は復讐の道を嗤い歩む
- 四度目は嫌な死属性魔術師
- 異世界ゆるり紀行 〜子育てしながら冒険者します〜
- 異世界支配のスキルテイカー ゼロから始める奴隷ハーレム
- 聖女の魔力は万能です
- 神さまSHOPでチートの香り
- 転生貴族の異世界冒険録
- 食べるだけでレベルアップ! 〜駄女神といっしょに異世界無双〜(コミック)
- ワンワン物語 〜金持ちの犬にしてとは言ったが、フェンリルにしろとは言ってねえ!〜
- おっさんのリメイク冒険日記
- 異世界ですが魔物栽培しています。
- 二度目の人生を異世界で
- 異世界の迷宮都市で治癒魔法使いやってます(コミック)
- 魔王になったので、ダンジョン造って人外娘とほのぼのする
- 最果てのパラディン
- 魔王様の街づくり! 〜最強のダンジョンは近代都市〜
- ダンジョンシーカー
- マギクラフト・マイスター
- 異世界温泉に転生した俺の効能がとんでもすぎる
- 物語の中の人
- 地方騎士ハンスの受難
- LV999の村人
- 精霊達の楽園と理想の異世界生活
- モノノケ!!!!
- どうやら私の身体は完全無敵のようですね
- 魔王の始め方 THE COMIC
- マージナル・オペレーション
- 転生王子はダラけたい
- 豚公爵に転生したから、今度は君に好きと言いたい
- レディローズは平民になりたい
- モンスターがあふれる世界になったので、好きに生きたいと思います
- Sランクモンスターの《ベヒーモス》だけど、猫と間違われてエルフ娘の騎士(ペット)として暮らしてます
- Re:Monster
- 俺だけ入れる隠しダンジョン 〜こっそり鍛えて世界最強〜
- Only Sense Online ―オンリーセンス・オンライン―
- ヤングジャンプ
- ヒストリエ
- 専門学校JK Ctrl+Z (1)
- 大家さんと僕
- 専門学校JK
- 理想のヒモ生活
- Lv2からチートだった元勇者候補のまったり異世界ライフ
- 僕の部屋がダンジョンの休憩所になってしまった件【パートカラー版】
- おっさん冒険者ケインの善行
- 陰の実力者になりたくて!
- 異世界系ファンタジー ガンガンいこうぜ!大ボリューム試し読みパック
- 史上最強の大魔王、 村人Aに転生する
- 機械学習のエッセンス 実装しながら学ぶPython、数学、アルゴリズム
- データサイエンティスト養成読本 ビジネス活用編
- Pythonクローリング&スクレイピング ―データ収集・解析のための実践開発ガイド―
- 絶対にヤッてはいけない異世界召喚
- 水女神は今日も恋をするか?
- [第2版]Python機械学習プログラミング 達人データサイエンティストによる理論と実践
- Rによるやさしい統計学
- 暗殺者である俺のステータスが勇者よりも明らかに強いのだが
- 少女奴●スクール
- ボコボコりんっ!
- 早乙女選手、ひたかくす
- Kaggleで勝つデータ分析の技術
- リビドーハンタータケル
- ヤクザの大親分が幼女に生まれ変わった話 1巻
- いきのこれ! 社畜ちゃん 〜後輩ちゃんオタ活動記〜
- 魔王様、リトライ!(コミック)
- アラフォー社畜のゴーレムマスター(コミック)
- ガイシューイッショク!
- 紀元前1万年のオタ デジタルモザイク版
- ここは俺に任せて先に行けと言ってから10年がたったら伝説になっていた。
- 異種族レビュアーズコミックアンソロジー 〜ダークネス〜
- うれしょん!
- ギリギリアウト
- やんちゃギャルの安城さん
- 佐伯さんは眠ってる
- Kiss×sis
- ハンツー×トラッシュ
- 小学生がママでもいいですか?
- 【悲報】会社の行き遅れBBA孕ませた
- 自称!平凡魔族の英雄ライフ
- デスラバ
- 咲 -Saki-
- 魔法使いの印刷所
- 大上さん、だだ漏れです。
- 都合が良くて可愛いメス。【FANZA限定特典付き】
- ヒトモエ委員会 デジタル版
- マナさんと母屋を離れて…
- JKハルは異世界で娼婦になった
- 今まで一度も女扱いされたことがない女騎士を女扱いする漫画
- 着たい服がある
- ライドンキング
- 異世界ソープランド輝夜
- ヤンキーJKの異常な愛情
- 【FANZA限定版】モンスター娘の堕とし方
- ばけものえっち【FANZA限定版】
- 異種恋愛【電子特装版】【FANZA限定】
- 鬼ヶ島の許婚
- 痛いのは嫌なので防御力に極振りしたいと思います。
- 化けネコ葉月の姉妹事情
- 異世界でもふもふなでなでするためにがんばってます。(コミック)
- 人間以外じゃダメですか? 人外っ娘・あそーと
- モンスター娘との交合
- 効果検証入門〜正しい比較のための因果推論/計量経済学の基礎
- 酷幻想をアイテムチートで生き抜く THE COMIC 1
- ぜつりん!
- クラスが異世界召喚されたなか俺だけ残ったんですが
- 変な知識に詳しい彼女 高床式草子さん
- お姉さんは女子小学生に興味があります。
- 女声男子
- プラナス・ガール
- おじさんはカワイイものがお好き。
- 冒険家になろう!〜スキルボードでダンジョン攻略〜(コミック)
- ゆうべはお楽しみでしたね
- 変愛彼女〜やだ彼氏のが他の娘に入っちゃってるう〜
- 異世界で失敗しない100の方法
- 田舎のホームセンター男の自由な異世界生活
- チート薬師のスローライフ
- 図書館の大魔術師
- アラフォー男の異世界通販生活
- 異世界で 上前はねて 生きていく〜再生魔法使いのゆるふわ人材派遣生活〜(コミック) 1
- 古竜なら素手で倒せますけど、これって常識じゃないんですか?(コミック)
- 商人勇者は異世界を牛耳る!〜栽培スキルでなんでも増やしちゃいます〜
- ポーション頼みで生き延びます!
- 老後に備えて異世界で8万枚の金貨を貯めます
- 事情を知らない転校生がグイグイくる。
- ちょっぴり年上でも彼女にしてくれますか?
- 魔術学院を首席で卒業した俺が冒険者を始めるのはそんなにおかしいだろうか
- 異世界チートサバイバル飯
- 完全回避ヒーラーの軌跡
- 剥かせて!竜ケ崎さん
- いきのこれ! 社畜ちゃん
- ギャルごはん
- 農民関連のスキルばっか上げてたら何故か強くなった。(コミック)
- 異世界召喚は二度目です(コミック)
- 異世界で神様になったので、だいたい何でもできる!!
- ハズレ枠の【状態異常スキル】で最強になった俺がすべてを蹂躙するまで
- リワールド・フロンティア(コミック)
- 復讐完遂者の人生二周目異世界譚 THE COMIC
- 奴隷商人しか選択肢がないですよ?
- ぼっち・ざ・ろっく!
- 寄生獣リバーシ
- 転生したらスライムだった件
- 暴食のベルセルク〜俺だけレベルという概念を突破する〜 THE COMIC
- もふもふを知らなかったら人生の半分は無駄にしていた
- 悪役令嬢の取り巻きやめようと思います
- 金貨1枚で変わる冒険者生活 1巻
- 最後にひとつだけお願いしてもよろしいでしょうか 1
- おちこぼれフルーツタルト
- 脱オタしてはみたものの
- 社畜と少女の1800日
- サキちゃんは今夜もぺこぺこ
- デスサイズぷるるん
- 最弱テイマーはゴミ拾いの旅を始めました。@COMIC 第1巻
- 史上最強オークさんの楽しい異世界ハーレムづくり
- あせとせっけん
- レベル1の最強賢者 〜呪いで最下級魔法しか使えないけど、神の勘違いで無限の魔力を手に入れ最強に〜 1 【電子版特典イラスト付き】(コミックポルカ)
- フェンリル母さんとあったかご飯(コミック)
- 幼女戦記
- アタマの中のアレを食べたい
- アスペル・カノジョ
- 異世界ちゃんこ〜横綱目前に召喚されたんだが
- 1年A組のモンスター
- サメガール
- 召喚された賢者は異世界を往く 〜最強なのは不要在庫のアイテムでした〜
- 聖者無双
- 先生、俺にかまわずイッてください!!
- ふたりソロキャンプ
- 娘の友達
- メイドインアビス
- 実践Data Scienceシリーズ PythonではじめるKaggleスタートブック
- モンスターのご主人様(コミック)
- おしかけツインテール
- 進化の実〜知らないうちに勝ち組人生〜(コミック)
- 俺はロリコンじゃない!
- 異世界転生…されてねぇ!(コミック)
- 永世乙女の戦い方
- 境界迷宮と異界の魔術師
- ひとりぼっちの異世界攻略
- ポンコツ女神の異世界創世録
- ゲーム オブ ファミリア-家族戦記-
- ヤンデレ系乙女ゲーの世界に転生してしまったようです
- 魔女と淫魔とカワイイお弟子(単話)
- 田舎に帰るとやけになついた褐色ポニテショタがいる
- 俺んちに来た女騎士と田舎暮らしすることになった件
- アラフォーリーマンのシンデレラ転生 1巻
- 転生魔女よ、暁を謳え (1)
- 千のスキルを持つ男 異世界で召喚獣はじめました!
- ワールド・ティーチャー 異世界式教育エージェント
- 異世界でも風俗嬢やってみた
- 異種族巨少女セクステット!
- ティアムーン帝国物語(コミック)
- おかしな転生
- 捨てられた皇妃
- 継続は魔力なり〜無能魔法が便利魔法に進化を遂げました〜
- 悪役令嬢の怠惰な溜め息 1【電子限定特典付き】
- フリクションガール
- 人間不信の冒険者たちが世界を救うようです
- 訳あり悪役令嬢は、婚約破棄後の人生を自由に生きる
- 雪女と蟹を食う
- ドM女子とがっかり女王様 (1)
- 異種族レビュアーズ
- 世界を救うために亜人と朝チュンできますか?
- レジェンド
- 16bitセンセーション 1 私とみんなが作った美少女ゲーム
- 魔導士LV99は空気が読めない
- 彼女、お借りします
- 愛しの国玉 1【電子限定特典付き】
- 古見さんは、コミュ症です。
- 史上最強の魔法剣士、Fランク冒険者に転生する 〜剣聖と魔帝、2つの前世を持った男の英雄譚〜
- 出来損ないと呼ばれた元英雄は、実家から追放されたので好き勝手に生きることにした (コミック)
- 僕の心のヤバイやつ
- せっかくチートを貰って異世界に転移したんだから、好きなように生きてみたい THE COMIC
- うちの師匠はしっぽがない
- 六道の悪女たち
- 母性天使マザカルカノン 1
- こいつらの正体が女だと俺だけが知っている
- レベル1だけどユニークスキルで最強です
- 女装してめんどくさい事になってるネクラとヤンキーの両片想い
- 妻、小学生になる。
- 転生吸血鬼さんはお昼寝がしたい〜Please take care of me.〜
- 葬送のフリーレン
- 科学的に存在しうるクリーチャー娘の観察日誌
- とある科学の超電磁砲
- 武士スタント逢坂くん!
- ナナマル サンバツ
- 声がだせない少女は「彼女が優しすぎる」と思っている
- 女神のスプリンター【DMM限定特典付き】
- じょしラク! 〜 2 Years Later〜(単話)
今までにDMM電子書籍で購入した本の一覧を購入日が古い順で全て取得できた。2 3
もう少し工夫すればリンクを取得したり、金額を持ってくるようなことも可能だと思うが、時間もかかるし面倒なので今回はやらない。
元々はrequestsモジュールでクローリングしようと思ったが、ログインが上手くいかなくてやめた。
seleniumは実際の操作をコードに起こすだけなので、ユーザー名・パスワード・ログインボタンの位置(htmlタグのclassやidで特定)さえ分かれば、内部でどんな処理が行われていようとログインできるはずなので、ログインが必要なサイトのクローリングは全部Seleniumでいいんじゃねーかなという気がしている。
参考リンク
-
【Python3】ログイン機能付サイトでスクレイピング【requests】【BeautifulSoup】
- 続きの 【Python3】ブラウザを経由したスクレイピング(動的なページなど)【Selenium】の方も参考にした
-
- DMMログインの部分をまんま拝借
-
SeleniumからHeadless Chromeを使ってみた
-
UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead
の警告が出ていたので、PhantomJSからChromeに変える際に参考にした。特に 準備の部分を参考にした。 -
実際のコードはほとんど変化ない
# # PhantomJSのドライバーを得る # browser = webdriver.PhantomJS() # browser.implicitly_wait(5) # ↓ # Chromeのドライバーを得る options = webdriver.ChromeOptions() options.add_argument('--headless') # 画面を表示しないオプション browser = webdriver.Chrome(options=options) browser.implicitly_wait(5)
-