关于刷标辅助软件的制作

前言

本文是大学时候写的,时隔多年,建议大家简单看下代码就好了,移步到另一个博客

基于Java的网页爬虫实践

其中包含了

  1. 爬虫概念
  2. 愿景
  3. 爬虫框架选型
  4. 爬虫和反爬虫
  5. 网页节点的解析方式
  6. Jsoup、WebCollector、Htmlunit解析实例
  7. WebMagic的介绍及使用
  8. WebMagic+Selenium自动化登录爬虫实践

本文项目san-spider源码地址
https://github.com/lufei222/san-spider.git

简介

作为一个计算机出身的羊毛党,经常因为刷不到标而烦恼,正好之前有过做校园新闻移动版app的经验,这个号的第一条博客。心里有点小激动,mark下如果嫌我说的太多可以直接看标记的和源码和部分。欢迎指出我的不足和交流你的看法

核心方法(在线程run方法中调用

上面一堆乱序的排版估计是csdn博客被弄过什么修改结构,我的两张截图都没了,因为是半年前些的现在也不记得是什么图,最近才发现排版乱了,我也不修改上面了,下面才是重点嘛

 代码示例

public static void runn(int lday, int lprice) throws IOException {
		Document doc = null;
		// System.out.println(getHtmlContent("http://list.lufax.com/list/piaoju","utf-8"))
		// ;
		try {
			doc = (Document) Jsoup
					.parse(new URL(
							"http://www.solarbao.com/index.php?m=Home&c=zhuangrang&a=index"),
							5000);
			
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
		//这里抛的异常无法处理声音和文本输出
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			text.setText("访问超时");
			FileInputStream fileau = new FileInputStream("a.wav");
		
			AudioStream as = new AudioStream(fileau);
	
			AudioPlayer.player.start(as);
			e.printStackTrace();
		}
//System.out.println("++++++"+doc);//输出网站源代码

		int count = 1;

		Elements es = doc.getElementsByClass(".transfer-product-style");
		Elements es1 = doc.select(".number");
		
		System.out.println();
		Elements es2 = doc.select(".hhem");
int num=0;
		List<Map<String, String>> list = new ArrayList<Map<String, String>>();
		for (Element e : es1) {
			Map<String, String> map = new HashMap<String, String>();
num++;
			//map.put("投资标" + String.valueOf(count),e.getElementsByTag("p[span]").text());
			//map.put("投资标" + String.valueOf(count),e.select("p").text());
			map.put(String.valueOf("1"),e.select("p").text());
			if(num%3==0&&num>=3)

				list.add(map);
			count++;

		}
		String lowprice, lowday;
		// 遍历list集合。
		for (int i = 0; i < list.size(); i++) {
			String str = list.get(i) + "";
			str = str.trim();
			str=splitnewjune(str);
	//		System.out.println(str);
			if (str.equals(lowpricefield.getText())||str.equals(lowdayfield.getText())) {
			
				try {
					 System.out.println("输出后"+str);
					text.setText(str);
					FileInputStream fileau = new FileInputStream("a.wav");
					Class<?> classtype = Class.forName("java.lang.Object");
					Class<?> classType = String.class;
					Object obj = classType.newInstance();
					
					InputStream fileau1 =baobao.class.getResourceAsStream("a.wav");
					AudioStream as = new AudioStream(fileau1);
			
					AudioPlayer.player.start(as);
					
		
				} catch (Exception e) {

				}
			} 

			}

	}

字符串处理函数

	//六月份最新改版
	private static String splitnewjune(String str) {

if(str.contains("元/块"))
str=str.replace(".00元/块","");
str=str.replace("1=","");
str=str.replace("{","");
str=str.replace("}","");
return str;
}

	
	
	
	public static String split(String str) {
		if (str.contains("成交"))
			return "1000";
		String str2 = str;
		// System.out.println(str2);
		if (str2.contains(","))
			
		    str2=str2.replace(",","");
		int i = str.indexOf("=");
		int j = str.indexOf(" ");
		str2 = str.substring(i+1, j);
if (str2.contains(","))
			
		    str2=str2.replace(",","");
		 System.out.println("输出后"+str2);
		 
		return str2;
	}

	public static String split2(String str) {
		if (str.contains("成交"))
			return "1000";
		int j = str.indexOf("天");
		String str2 = str.substring(j - 3, j);
		// System.out.println(str2);
		return str2;
    }
	    flag = true;
	    text.setText("刷新中,我们将以消息声音提示你,请留意");
				 
		thread = new MyThread();
	    thread.start();

			}

 

run方法

public void run() {

		while (flag) {
			try {
				Thread.sleep(Integer.parseInt(timefield.getText() + "000"));
				lday = Integer.parseInt(lowdayfield.getText());
				lprice = Integer.parseInt(lowpricefield.getText());
				ltime = Integer.parseInt(timefield.getText());
				runn(lday, lprice);
				System.out.println("刷新中");

			} catch (InterruptedException | IOException e) {

			
				e.printStackTrace();
			}
		}
		if(!flag){

			
		}

 

尾声

接着是希望做成安卓版的,但是jsoup在安卓项目中解析出来的数据出问题,到现在我也无法理解为啥我做的安卓新闻可以而这个不行,百度出的原因说是我的安卓项目adt版本库之类的不对,所以解析出现问题,反正安卓开发挺坑的,写着xml也经常出问题。环境安卓各种武林版本我也是醉了,所以这相关的一系列问题弄了我差不多一天半也没有解决完。日后有时间应该还会搞,不过本人想从事苹果移动开发,所以也不希望在安卓这些库和版本环境带来的问题上花太多心思。现在google又又宣布终止对于eclipse的adt的更新,eclipse的末日很快到了应该,我比较考虑未来,所以我觉得我的选择是正确的。但是android studio听爱折腾的舍友说很难使用,怕很多开发者接受不了啊。欢迎大家留下评论和交流告诉我更好更新的技术。
 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值