Python入門者へおすすめ動画&書籍おすすめ!

Python

iタウンページからメアドをスクレイピングする方法

2019年11月16日

0
0

追記  : 2020年、url構造が変わってるためこのコードは動きません

 

 

 

細かい説明しないけど。備忘録に。

やりたいこと

営業活動を自動化しようと思って、iタウンページからメールアドレスを大量に取得するスクリプトを書きました。このスクリプトは、全国の健康・介護のお店・施設420866件の情報を(今回はメールアドレスだけ)自動的に取得することができます。

実装

 

"""
#
#
#
#これは、iタウンページからメールアドレスを収集するスクリプトです
#このスクリプトは、全国の健康・介護のお店・施設420866件の情報を
#(今回はメールアドレスだけ)自動的に取得することができます。
#
#
"""
import requests
import bs4
import re

"""
#
#
#
#お約束。ループで回すたびに初期化しようとするとエラーになったので。
#
#
#
#
"""
res = requests.get('https://itp.ne.jp')
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, "html.parser")

"""
#
#
#
#
#5ページ分だけ取得して、配列に保持する。
#
#
#
"""
url_list = []

for i in range(5):
   value = "{0}".format(i)
   url = 'https://itp.ne.jp/genre_dir/health/pg/%s/' % value
   url_list.append(url)
#print(url_list)


"""
#
#
#
#配列を一個づつ回して、htmlを解析して、メールアドレスだけ取得
#
#
#
#
"""
for url in url_list:
    res = requests.get('%s' % url)
    soup = bs4.BeautifulSoup(res.text, "html.parser")
    for p in soup.find_all('a', class_='boxedLink emailLink'):
        line = str(p) 
        match = re.search(r'[\w\.-]+@[\w\.-]+', line)
        print(match.group(0) )

 

結果

いっぱい取れた〜(´ω`)んで、この流れで自動的にスパム営業メールを送ってガツガツ仕事獲得だ〜!

Screen Shot 2018-08-13 at 20.20.59.png

補足

スクレイピングのコツは、urlとhtmlの構造を掴むこと。パターンをどれだけ正確に細かく掴めるかが、データを有効活用するコツ。今回の場合、メールアドレスはaタグのboxedLink emailLinkというクラスの中に必ずあったので、スクレイピングしたhtmlのページを解析して、aタグのboxedLink emailLinkクラスだけを取得して、その文字列の中から正規表現でメールアドレスを抜き出しました。

Screen Shot 2018-08-13 at 20.29.31.png
Pocket
LinkedIn にシェア

Python入門者へおすすめ動画&書籍おすすめ!

  • この記事を書いた人
  • 最新記事

藤沢瞭介(Ryosuke Hujisawa)

りょすけと申します。18歳からプログラミングをはじめ、今はフロントエンドでReactを書いたり、AIの勉強を頑張っています。off.tokyoでは、ハイテクやガジェット、それからプログラミングに関する情報まで、エンジニアに役立つ情報を日々発信しています!

-Python
-, , , ,

Copyright© off.tokyo , 2021 All Rights Reserved Powered by AFFINGER5.