无聊,写了个每天获取cs:go价格并通过邮件发送给我的程序。
上脚本:
#!/bin/bash
tempXMLFile=~/temp/temp/temp.xml
logFile=~/temp/temp/log
tempFile=~/temp/temp/temp
jarFile=~/temp/temp/Untitled.jar
date >> $logFile
curl "http://store.steampowered.com/app/730/CounterStrike_Global_Offensive/" > $tempXMLFile
echo "curl result = $?" >> $logFile
java -jar $jarFile $tempXMLFile > $tempFile
cat $tempFile >> $logFile
echo >> $logFile
cat $tempFile | heirloom-mailx -s "CS:GO today's price" xxxxxxx@xxxxx
主要是三个部分,curl 获取网页,然后java程序解析出价格,最后邮件发送价格。其中值得注意的是,由于我在crontab里用的是这个脚本,所以很多文件用了绝对路径,现在現這么做,以后再把坑补上
java部分使用了Jsoup框架,这个框架解析html非常方便,上源码:
import java.io.File;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class PriceFinder {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
File file=new File(args[0]);
Document doc = Jsoup.parse(file, "UTF-8", "http://store.steampowered.com/app/730/CounterStrike_Global_Offensive/");
Element price = doc.select("div[class=\"game_purchase_price price\"]").first();
System.out.println(price.text());
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
至于heirloom-mailx,之前在网上找了很多发邮件教程,感觉还是这个安装和配置比较方便。
明天7:00再看能不能收到邮件。。。乀(ˉεˉ乀)
额。。。,收到是收到了,但没内容。。。
研究了一下,发现是找不到java命令。。。。(无语)
把java改成绝对路径之后就成功了。。