本リポジトリは「特定の企業のプレスリリースおよび、ニュースリリース」情報をスクレイプにより抽出し、表示するCGIを管理するリポジトリとする。 本プログラムは、プレスリリース情報をWebから抽出するスクレイピングツールとそれをWebブラウザでプレスリリース情報を確認するCGIツールの2つに大別される。 以下に機能毎に説明する。
Dockerを利用することで、環境構築不要ですぐに利用できる。
- Docker および Docker Compose がインストールされていること
$ docker compose up webhttp://localhost:4567/pr でアプリケーションへアクセスできる。
# 例: ソフトバンクのプレスリリースを取得
$ docker compose run --rm --profile scraper scraper \
-s softbank -o /app/data/softbank_pr.tsv -f 20240101 -t 20241231スクレイピングで取得したTSVデータをDBに登録する。
$ docker compose exec web ruby /app/cgi/db/update.rb \
-d /app/cgi/db/pr_table.sqlite3 -i /app/data/softbank_pr.tsv$ docker compose downスクレイピングツールは、主要IT企業のプレスリリースを企業毎に抽出し、tsv形式のファイルを出力する機能を提供する。
-
利用方法(ローカル実行の場合)
$ cd bin $ ruby ./pr_scraper.rb -s softbank -o softbank_pr.tsv -f 20200401 -t 20200630 -
引数一覧
- s: サイト名を指定
- o: 出力ファイル名
- f: 取得対象の開始時間(YYYYMMDD)
- t: 取得対象の終了期間(YYYYMMDD)
今回は
PR抽出 対応企業の企業名(括弧内の企業名)を入れることで抽出できる。 -
出力形式
# 日付<TAB>タイトル<TAB>URL<TAB>本文
-
PR抽出 対応企業
-
ソフトバンク(softbank) https://www.softbank.jp/corp/news/press/all
-
百度JAPAN(baidu) https://www.baidu.jp/info/
-
楽天(rakuten) https://corp.rakuten.co.jp/news/press/
-
NTT docomo(docomo) https://www.nttdocomo.co.jp/info/news_release/year.html?year=2020
-
メルカリ(mercari) https://about.mercari.com/press/news/
-
DMM(dmm) https://dmm-corp.com/press/
-
LINE(line) https://linecorp.com/ja/pr/news/
-
CyberAgent(cyberagent) https://www.cyberagent.co.jp/news/press/
-
Apple(apple) https://www.apple.com/jp/newsroom/archive/
-
Yahoo(yahoo) https://about.yahoo.co.jp/pr/
-
Alibaba(alibaba) https://www.alibaba.co.jp/news/
-
Microsoft(microsoft) https://news.microsoft.com/ja-jp/category/press-releases/
-
PRTIMES PRTIMESを利用してkeyword を検索で以下の企業を検索する。
-
Amazon(amazon) https://prtimes.jp/topics/keywords/Amazon
-
Google(google) https://prtimes.jp/topics/keywords/Google
-
KDDI(kddi) https://prtimes.jp/topics/keywords/KDDI
-
Facebook(facebook) https://prtimes.jp/topics/keywords/Facebook
-
-
Docker を使わずにローカルで実行する場合の手順を以下に示す。
- Ruby 3.2 以上
- Bundler
- SQLite3
- Node.js / npm
- Chromium または Google Chrome(スクレイピング機能を使用する場合)
# gem のインストール
$ bundle install
# gentelella のインストール
$ cd cgi && npm install- tableの作成
$ sqlite3 ./pr_table.sqlite3 < ./pr_table.sql - データの登録
$ cd cgi/db # DBを作成する $ ./mk_table.sh # Dataを登録する $ sqlite3 ./pr_table.sqlite3 sqlite> .separator "\t" sqlite> .import pr.tsv pr_table
web application の構築にはsinatra を利用している。application の起動は
$ cd cgi
$ ruby ./pr_viewer.rbデフォルトではlocalhost:4567/prでアプリケーションへアクセスできる。
