任务名称:基于rails开发后台程序,同时开发与微信公众平台交互模块,抓取友站数据,存储到mysql数据库中
参考文章http://guides.ruby-china.org/
第一步、布置环境(ubuntu14.04)
安装ubuntu12.04后升级到14.04后出现网络无法链接的问题
sudo client -r
sudo client
输入以上两句命令后解决问题
sudo apt-get install zlib1g zlib1g-dev build-essential
sudo apt-get install curl git
bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
rvm -v
bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )
安装rvm的时候遇到了问题,使用rvm 固定版本加ruby 具体命令装系统时遗失,是一个直接安装rvm和ruby的命令
rvm install
gem install rails
然后查看版本号:ruby -v 、rails -v、rvm -v
mysql是配置php环境时搭好的,安装mysql即可
第二步,建立服务器基础程序
使用mysql故变更若干配置
建立新项目目录:rails new mysite
使用scaffold快速建立
rails g scaffold aaa name:string remarks:text other:string
在Gemfile中修改 gem 'sqlite'改为gem 'mysql2'
进入项目目录,然后gem install msyql2 或者bundle install
修改config/database.yml文件
default: &default
encoding: utf8
adapter: mysql2
username: root
password:
pool: 5
timeout: 5000
修改下面的数据库名称
也可以直接用--mysql命令,直接使用mysql数据库
rails new mysite -d mysql
默认使用debugger gem,后来查证此gem在ruby2.0以上已经被弃用,修改为byebug
完成以上步骤后服务器已创建建立数据库和建立表格语句,使用rake命令
创建数据库
rake db:create
创建表
bin/rake db:migrate RAILS_ENV=development
完成
第三步,配置mysql,写抓取程序
mysql是配置php环境时搭好的,不过抓取时用到
require "mysql"
SQLHelper = Mysql.real_connect("localhost","root","aaa","aaa",3306);
发现是安装不上 libmysql-ruby包出错,在一下网址找到这个deb包,直接安装,问题接决
http://lug.mtu.edu/ubuntu/pool/universe/r/ruby-mysql/libmysql-ruby_2.8.2+gem2deb-1build1_all.deb
首先安装nokogiri,然后按照页面规则和cssPath来写
写正则匹配的时候 用到的一个在线匹配网址:http://www.rubular.com/
部分代码:
require 'nokogiri'
require 'open-uri'
require "mysql"
html=open("http://aaa.com").read
doc = Nokogiri::HTML.parse html
urls =doc.scan(/href="(.*)html/)
for url in urls do
......
end
数据库插入时防止乱码,需设置:SQLHelper.query("SET NAMES utf8")
第四步、与开放平台交互
SQL准备:
交互开发: