3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

pythonでconnpassのユーザーグループ数とメンバー数を取得してみた

Last updated at Posted at 2019-02-06

はじめに

connpassのユーザーグループの数と所属人数が気になり、pythonでスクレイピングしました。
結論から言うと、すべてのグループは取得できませんでしたが、一連の流れを書いていこうと思います。

データの収集方法

connpassにはapiが用意されていますが、イベント検索用のみでしたので今回は使用できませんでした。

そのため、今回はconnpassの新着グループ画面からデータを取得していきました。
URLはpageのパラメータが連番になっており、MAXは200ページであることは事前に確認しました。
(page=1000などにしてアクセスして、MAXを調べました)

また、残念ながら公開日が2018/02/06までのみで、それ以前は取得できませんでした。

スクリーンショット 2019-02-06 10.17.04.png

プログラム

git hub
https://github.com/nsuzuki7713/scraping/blob/master/connpass_group/connpass_group.py

特に難しいことはしていないです。
URLにアクセスして、HTMLをパースし、CSVに書き出す流れとなります。
次ページにアクセスするときは、負荷を考え1秒waitしています。

connpass_group.py
# coding: UTF-8
import urllib.request, urllib.error
from bs4 import BeautifulSoup
import csv
from time import sleep

# csvファイルの準備
f = open('group-list-20180206.csv', 'a')
writer = csv.writer(f, lineterminator='\n')
writer.writerow(["公開日","グループ名","URL","人数"])

count = 0

# 200pageループする
for i in range(201):
    url = "https://connpass.com/recent_group/?page=" + str(i+1)
    html = urllib.request.urlopen(url)
    soup = BeautifulSoup(html, "html.parser")

    # 1グループはseries_listのclassにある
    list = soup.find_all("div", class_="series_list")

    for val in list:
        # 公開日、グループ名、URL,人数を取得
        csv_list = []
        csv_list.append(val.select(".date")[0].string.replace('公開日: ', ''))
        csv_list.append(val.select(".title")[0].string)
        csv_list.append(val.select(".title > a")[0].get('href'))
        csv_list.append(val.select(".amount")[0].string)

                # csvファイルに出力
        writer.writerow(csv_list)
        count = count + 1

        # 次ページに行く際は1秒待つ
    sleep(1)

print("グループ数:" + str(count))
f.close()
$ python connpass_group.py
グループ数:2008

抽出データ

人数が多いグループをピックアップしました。
抽出したデータはcsvでこちらに置いておきます。
https://github.com/nsuzuki7713/scraping/blob/master/connpass_group/group-list-20180206.csv

公開日 グループ名 URL 人数
2018/02/20 RPA Community https://rpacommunity.connpass.com/ 1751
2018/07/24 SHIBUYA BIT VALLEY https://sbv.connpass.com/ 1644
2018/06/26 Neutrino https://neutrino.connpass.com/ 1308
2018/04/26 Cloud Native Meetup Tokyo https://cloudnative.connpass.com/ 1036
2018/03/26 CryptoAge https://cryptoage.connpass.com/ 1011
2018/05/11 HashHub https://hashhub.connpass.com/ 769
2018/04/05 Flutter Japan User Group https://flutter-jp.connpass.com/ 768
2018/07/23 Mercari Dev https://mercaridev.connpass.com/ 754
2018/03/16 NuxtMeetup https://nuxt-meetup.connpass.com/ 753
2018/05/09 HTML5 APP CONFERENCE https://html5app-conf.connpass.com/ 743
2018/04/01 コネヒト/Connehito Inc. https://connehito.connpass.com/ 703
2018/05/09 CryptoBowl https://cryptobowl.connpass.com/ 645
2018/08/06 X-HACK東京 https://x-hack.connpass.com/ 635
2018/02/28 くじらや https://docker.connpass.com/ 612
2018/09/05 IIJ Technical Seminar https://iij.connpass.com/ 611
2018/09/13 IIJmio https://iijmio.connpass.com/ 594
2018/03/11 Liberal Arts for Beginners https://liberal-arts-beginners.connpass.com/ 585
2018/07/09 Repro Tech Meetup https://repro-tech.connpass.com/ 576
2018/05/15 全脳アーキテクチャ勉強会 https://wba-meetup.connpass.com/ 553
2018/03/01 Roppongi.js https://roppongi-js.connpass.com/ 552
2018/05/20 techain(テックチェーン) https://techtec.connpass.com/ 549
2018/02/15 InHouseDesigners https://in-house-designers.connpass.com/ 549
2018/08/02 エンジニアの登壇を応援する会 https://engineers.connpass.com/ 543
2018/06/12 Tokyo.R https://tokyor.connpass.com/ 509
2018/04/20 Interfaceオフ会 https://inteface-meet-up.connpass.com/ 509
2018/08/10 銀座Rails https://ginza-rails.connpass.com/ 492
2018/04/20 s-dev talks https://s-dev-talks.connpass.com/ 486
2018/03/10 全人類がわかる統計学 https://to-kei.connpass.com/ 464
2018/05/25 ReDesigner https://redesigner.connpass.com/ 457
2018/11/04 Engineering Manager Meetup https://engineering-manager-meetup.connpass.com/ 452
2018/07/30 DDD-Community-Jp https://ddd-community-jp.connpass.com/ 441
2018/06/26 アドフラウド勉強会 https://adfraud-study-group.connpass.com/ 431
2018/08/04 Cloud Native JP https://cnjp.connpass.com/ 429
2018/04/22 SI業界出身のWEBエンジニアたち https://ex-sier.connpass.com/ 408
2018/07/09 UX道場 https://uxdojo.connpass.com/ 407
2018/05/11 D Empowerment Lab https://d-empowerment.connpass.com/ 407
2018/06/13 Designer X Engineer Lovers(DXEL) https://engineers-x-designers.connpass.com/ 403
2018/06/12 OpsSecJAWS https://opssecjaws.connpass.com/ 398
2018/04/21 3D勉強会@関東 https://3dvision.connpass.com/ 393
2018/06/19 UTokyo IST https://u-tokyo-ist.connpass.com/ 388

最後に

1時間ほどで作ったもので、中途半端なデータになってしまいました。
次はもう少し多くのグループを取得できるようにしたいと思います。

参考URL

PythonとBeautiful Soupでスクレイピング
https://qiita.com/itkr/items/513318a9b5b92bd56185

Python Webスクレイピング 実践入門
https://qiita.com/Azunyan1111/items/9b3d16428d2bcc7c9406

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?