ruby 快速而肮脏的脚本,以PDF格式从AT&T获取最新账单。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 快速而肮脏的脚本,以PDF格式从AT&T获取最新账单。相关的知识,希望对你有一定的参考价值。

#!/usr/bin/env ruby
# encoding: UTF-8

require 'optparse'
require 'ostruct'
require 'mechanize'

# Test

options = OpenStruct.new

parser = OptionParser.new do |p|
  p.banner = 'Usage: bill_getter [OPTIONS]'

  p.separator 'Example: bill_getter -u user@att.net -p secret'

  p.separator ''
  p.separator 'Getter options:'

  p.on('-u', '--user USERNAME',
       'Login using the user USERNAME') do |user|
    options.user = user
  end

  p.on('-p', '--password PASSWORD',
       'Authenticate with PASSWORD') do |pw|
    options.pw = pw
  end

  p.on('-f', '--filename FILENAME',
       'Save PDF to FILENAME',
       '(default stdout)') do |filename|
    options.filename = File.expand_path filename
  end

  p.separator ''
  p.separator 'Miscellaneous:'

  p.on_tail('-h', '--help', 'Show this message') do
    puts p
    exit
  end
end

begin
  parser.parse! ARGV

  raise ArgumentError unless options.user && options.pw
rescue
  puts parser
  exit
end

agent                  = Mechanize.new
agent.user_agent_alias = 'Mac Safari'

page              = agent.get 'http://www.att.com/uversecentral'

form              = page.form 'loginActionForm'
form.wireless_num = options.user
form.accountType  = 'UVERSE'
form.pass         = options.pw
form.customerType = 'UVERSE'

agent.submit form

pdf = agent.get_file 'https://www.att.com/view/uverse_printer_friendly.action'

if options.filename
  File.open(options.filename, 'w') {|f| f.write pdf}
else
  puts pdf
end

以上是关于ruby 快速而肮脏的脚本,以PDF格式从AT&T获取最新账单。的主要内容,如果未能解决你的问题,请参考以下文章

ruby 使用Ruby进行快速而脏的PDF签名(使用Origami)

Python:快速而肮脏的数据类型 (DTO)

python 快速而肮脏的OpenSSL heartbleed漏洞演示

css 快速而肮脏的根css,每次都有效

如何从 Python 代码进入 REPL(读取、评估、打印、循环)

SQLAlchemy 还是 psycopg2?