LoginSignup
4
3

More than 5 years have passed since last update.

希望の党・第1次公認リストを整形して出力する

Last updated at Posted at 2017-10-04

希望の党・第1次公認リストが載っているんですが、

かなり見にくいので、見やすいように整形して出力するrubyスクリプトを書きました。
nokogiri使っていますので、bundler使用する場合はGemfilegem "nokogiri"と書いといてください。

ソースは以下です。

hope.rb
require 'open-uri'
require 'nokogiri'

Member = Struct.new(:name, :search_url)

doc = Nokogiri::HTML(open('http://www.sankei.com/politics/amp/171003/plt1710030138-a.html'))
content = doc.css('article p').to_a.flatten.map(&:content).join

members = content.scan(/区?=(.+?)(/).reduce([]) do |acum, match|
  name = match[0]
  acum << Member.new(name, "https://www.google.co.jp/search?q=#{name}")
end

tbody = members.map.with_index(1) do |m, i|
  <<-TR
    <tr>
      <td>#{i}</td>
      <td>#{m.name}</td>
      <td><a href="#{m.search_url}" target="_blank">#{m.search_url}</a></td>
    </tr>
  TR
end.join

puts <<HTML
<html>
  <head>
    <title>希望の党・第1次公認リスト</title>
  </head>
  <body>
    <h1>希望の党・第1次公認リスト</h1>
    <table>
      #{tbody}
    </table>
  </body>
</html>
HTML

bundle exec ruby hope.rbで実行すると標準出力にhtmlを吐き出します。次のような感じで適当にリダイレクトしてあげてください。

$ bundle exec ruby hope.rb > hope.html

名前と検索用URLのみです。選挙区は拾ってません。必要なら改造してみてください。完成物htmlだけに興味ある方は、自分のブログに貼り付けてありますので、そっちを見てください。

4
3
4

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
4
3