7日目
今回からまた、新しいものを作りたいと思います。
この毎日投稿なのですが基本的に前日くらいにかきあげて、それを次の日の20時とかに手動で投稿してるのですが、普通に投稿し忘れたりするので自動化できれば...と常に思っていたのでそちらを作りたいと思います。
一旦今日のところは自分のページにログインする部分の処理を書きたいと思います。
【技術テーマ】
Qiitaのスクレイピング
言語
- Ruby
目標成果物
Qiitaにログインするコードを書く
コードと資料
ログイン処理の実装
前回同様ログイン系の処理なのでmechanizeを使います。
Gemfile
source 'https://rubygems.org/'
gem 'nokogiri'
gem 'mechanize'
crawler.rb
crawler.rb
require 'nokogiri'
require 'mechanize'
agent = Mechanize.new
login_page = agent.get("https://qiita.com/login")
doc = Nokogiri::HTML.parse(login_page.body, nil, 'utf-8')
token = doc.css('.loginSessionsForm')[0].css('input')[0]['value']
agent.post("https://qiita.com/login",{
identity: 'メールアドレス',
password: 'パスワード',
authenticity_token: token
})
tokenが無いと500で起こられてしまったのでログインページで取得しておいてそれをpostしてあげます。
試しにこのしたに
page = agent.get("https://qiita.com/drafts/9854bdc1a4086754e4ab")
doc = Nokogiri::HTML.parse(page.body, nil, 'utf-8')
p doc
とか書いて下書きページにいくと下書きページが取得できていることがわかります。
https://qiita.com/drafts/9854bdc1a4086754e4ab
は動的な値なのかもしれないので要検討ですが....
一旦今日のところはこれで完了です。
(QiitaにQiitaのスクレイピングについて載せたら消されるのだろうか...🤔)