Help us understand the problem. What is going on with this article?

Python+seleniumでGWに大量のメルアドげっと

More than 3 years have passed since last update.

はじめに

さてみなさまGWいかがお過ごしでしょうか
私は割と時間を持て余しているので初めての投稿をさせていただきます。
初めての投稿ですので何卒至らない部分などあるかとございますが、よろしくお願いいたします。

この記事は © メルアドぽいぽいの許可を得ずに執筆しています。問題がありましたら、連絡お願いいたしますすぐに削除させていただきます。

今回の目的

突然ですが
以下のサイトをご存知でしょうか?
https://m.kuku.lu/

メールアドレスを無限個生成してくれるサービスです。とても便利なのですがいちいちメールアドレスをクリックして生成するのが面倒いので自動化してしまおう、というのが今回の目的です。大量にメールアドレスが欲しい時、ありますよね(^_^;)

下準備

下準備します
pythonとseleniumの環境を整えなくてはなりません

seleniumとはwebページをテストすることの出来るツールです。
pythonはプログラミング言語で今回のウェブページ操作のスクリプトをこちらで書くことになります。

pythonのインストール

以下の記事を参考にしてください。無断でリンクさせていただきます。失礼いたします

・windows(taipon_rock様の記事)
http://qiita.com/taipon_rock/items/f574dd2cddf8851fb02c   
http://qiita.com/socket1016/items/fdcc454e4ffe70a07507

・mac(ramma様の記事) ←pyenvを使い3.5.1のインストールまで完了させてください
http://qiita.com/ramma/items/5c3cb3bb371e6a6286f1

・linux(uryyyyyyy様の記事)
http://qiita.com/uryyyyyyy/items/268f8dc0d6ec3d7da7e3
正直ubuntu環境で構築したほうがはるかに早いと思います
windowsだと結構だるそう

当方の環境がubuntu 16.04 LTS なので以降はこちらで解説させていただきます。

seleniumのインストール

seleniumは端末に以下のコードで入ります。

pip install selenium

chrome web driverのインストール

次にchromeを操作するドライバーが必要です。
https://sites.google.com/a/chromium.org/chromedriver/downloads
こちらからダウンロードし中身の「chromedriver」ファイルを実行するプログラムと同じ場所に置いてください。

これで環境が整いました。

スクリプトを書く

今回はメルアドぽいぽいからメールアドレスを自動的に取得して
テキスト書き出すプログラムを作りました。以下がソースコードです。


import os
import time
from selenium import webdriver

# ブラウザの起動させます
browser = webdriver.Chrome('./chromedriver')
# ページ移動
browser.get('https://m.kuku.lu/')
time.sleep(1)
# xpathでIDとPWを取得
browser.find_element_by_xpath('//*[@id="link_logindata"]').click()
ID=browser.find_element_by_xpath('//*[@id="area_numberview"]')
PW=browser.find_element_by_xpath('//*[@id="area_passwordview"]')
f=open('poipoiIDPWmaillist.txt','w')
f.write('IDとPWがわからなくなるとメールが受信できなくなります\nくれぐれも無くさないように注意してください。\n\n')
f.write('ID='+ID.text+'\n')
f.write('PW='+PW.text+'\n\n')
f.write('以下メイルアドレス\n\n')

for num in range(1,1900):
    browser.find_element_by_xpath('//*[@id="link_addMailAddrByAuto"]').click()
    time.sleep(2)
    mailadresu=browser.find_element_by_xpath('//*[@id="area-newaddress-view-data"]/div/div[1]/u')       
    f.write(mailadresu.text+'\n')
    time.sleep(2)
    browser.find_element_by_xpath('//*[@id="link_newaddr_close"]').click()
    time.sleep(1)   






基本的にはページ上で操作したい場所のxpathを取得してソースコードに記載します
chromeでのxpathの取得方法は標準の開発者モードにて該当箇所を右クリック→コピー→xpathで出来ます
詳しくは以下のページをどうぞ
http://ptech.g.hatena.ne.jp/noromanba/20120528/1338307299

browser.get('ココに行きたいウェブページのアドレス')
browser.find_element_by_xpath('ココに取得したxpath').click() #←こいつでクリック
time.sleep(遅延させたい秒数) #←こいつは待ち時間、ページの操作を待っている時間のことです。

seleniumについての詳しい解説は公式日本語ドキュメントをご覧ください
http://selenium-python.a-zumi.net/installation.html#introduction

以下のソースコードを「適当な名前.py」で保存しコマンドラインより

python3 適当な名前.py

でchromeブラウザが自動的に起動し、メルアドの取得がされます。

とりあえずはこちらのコードでメルアドぽいぽいよりメールアドレスの取得が可能になります。
テキストデータは同じフォルダに「poipoiIDPWmaillist.txt」として存在しています。
IDとPWが控えてありますのでそちらからご利用ください。

実行した環境

ubuntu 16.04 LTS
python 3.5.1
selenium 3.4.1

hynmt
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away