Skip to content

hisashi-ito/pr-scraper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

1. はじめに

本リポジトリは「特定の企業のプレスリリースおよび、ニュースリリース」情報をスクレイプにより抽出し、表示するCGIを管理するリポジトリとする。 本プログラムは、プレスリリース情報をWebから抽出するスクレイピングツールとそれをWebブラウザでプレスリリース情報を確認するCGIツールの2つに大別される。 以下に機能毎に説明する。

2. Docker による起動(推奨)

Dockerを利用することで、環境構築不要ですぐに利用できる。

前提条件

  • Docker および Docker Compose がインストールされていること

Web Applicationの起動

$ docker compose up web

http://localhost:4567/pr でアプリケーションへアクセスできる。

スクレイピングの実行

# 例: ソフトバンクのプレスリリースを取得
$ docker compose run --rm --profile scraper scraper \
    -s softbank -o /app/data/softbank_pr.tsv -f 20240101 -t 20241231

DBへのデータ登録

スクレイピングで取得した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

3. スクレイピング・ツール

スクレイピングツールは、主要IT企業のプレスリリースを企業毎に抽出し、tsv形式のファイルを出力する機能を提供する。

4. Web Application(ローカル実行)

Docker を使わずにローカルで実行する場合の手順を以下に示す。

前提条件

  • Ruby 3.2 以上
  • Bundler
  • SQLite3
  • Node.js / npm
  • Chromium または Google Chrome(スクレイピング機能を使用する場合)

セットアップ

# gem のインストール
$ bundle install

# gentelella のインストール
$ cd cgi && npm install

DBの構築

  • 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の起動

web application の構築にはsinatra を利用している。application の起動は

$ cd cgi
$ ruby ./pr_viewer.rb

デフォルトではlocalhost:4567/prでアプリケーションへアクセスできる。

About

press (news) release scraper for specific company

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors