Beautiful Soupを使ってスクレイピングする

こんにちは、佐藤です。
以前船寄さんがこちらの記事でGo言語でスクレイピングを行っていましたが、私はPythonでスクレイピングします。

Beautiful SoupというPythonのライブラリを使います。

目次

動作環境

  • Mac OS
  • Python 3.6.1

下準備

[bash] $ pip beautifulsoup4
$ pip install lxml
[/bash]

スクレイピング対象のドキュメントをBeautiful Soupコンストラクタに渡します。
ドキュメント対象は2017年6月28日12時時点での愛知県の街コン一覧ページにします。

[bash] import urllib.request
import re
from bs4 import BeautifulSoup

url = "https://machicon.jp/dates/2017/06/28/areas/aichi/"
request = urllib.request.Request(url)
response = urllib.request.urlopen(url)

soup = BeautifulSoup(response, "lxml")
[/bash]

スクレイピング対象を街コン名とします。
デベロッパーツールで街コン名のtagを確認すると’街コン名‘で囲まれているので、

[bash] titles = soup.find_all("span", itemprop="name")
for title in titles:
print(title.get_text())
[/bash]

これでいい。

出力結果

[bash] 街コンTOP
2017年
6月
28日
愛知県開催の街コン・恋活・婚活パーティー
愛知県/栄
6/28【栄】20代中心!【男性22-32歳】【女性20代限定】平日休み同世代で盛り上がるランチコン!安心の着席交流スタイル♪
愛知県/栄
【女性先行】【男性4名募集】6/28(水) 昼 栄《平日ランチコン》【男性アラサー社会人限定】着席&席替え複数回でしっかり話せる☆男性2
5~35歳 女性20~35歳☆平日昼間にセレブ気分♪大人の出逢えるプチ街コン(R)
愛知県/名古屋市内その他
【満席間近★男女共8名申込中】【☆1対1着席スタイル☆】6/28 14時半 in名古屋 真剣婚活パーティー【【連絡先交換自由】最後の恋をお探
しの30代限定編】
愛知県/名古屋市内その他
【❗❗男性急募❗❗《初参加の女性割合が90%以上❤》】【6月28日(水)名古屋個室】20・30代中心★平日スペシャル婚活パーティー
愛知県/名古屋市内その他
【❇話題沸騰❇❤誠実×一途×爽やか男性❤】【6月28日(水)名古屋】男性年収500万以上ハイステータス婚活パーティー
愛知県/名古屋市内その他
【\✨大チャンス✨/平均カップル率68%】【6月28日(水)名古屋個室】20代限定ハイステータス婚活パーティー
愛知県/栄
【\✨女性大人気企画✨/❤男女比重視編】【6月28日(水)栄】年上男性×20代女子中心★恋活PARTY≪最新≫『トキメく出会いの決定版』カップ
ル発表あり
愛知県/名古屋市内その他
【★男性満席・女性残2席★】【☆1対1着席スタイル☆】6/28 19時半 in名古屋 真剣婚活パーティー【男女ともに【25~35歳】限定編】
愛知県/栄
6/28(水) 夜 栄★20~35歳★着席&席替え複数回で沢山の人と話せる!肉バルで会話を楽しもう♪ 一人参加も多数で安心☆恋するドキドキパー
ティー
[/bash]

スクレイピングできました。…って絵文字が文字化けしてる。

※キャプチャ撮りました。

さいごに

Pythonでスクレイピングを行うことができました。

リンクバルでは エンジニアを積極募集中 です。興味のある方のご応募お待ちしております。