关闭

用watij爬取网页内容

3129人阅读 评论(0) 收藏 举报

段时间,移动组找我帮忙抓个数据:http://jwc.hust.edu.cn:81/index.aspx,我看了看,觉得应该没问题吧,就答应了。后来发现,asp.net真不是一般的变态啊。。。
尝试了各种方法,都不行,只好请教师傅。师傅也很纠结,后来不知道从哪儿搜出了个方法,用watir(web application test in ruby),通过ruby打开firefox然后访问网页,并对网页进行操作,来获取数据。
看起来很简单。。但是麻烦在于要编译一个firefox。。编译一个firefox也不是特麻烦。。麻烦在还得加个jssh的extension。。加个extension也不是很麻烦。。还不能用firefox的新版本。。话说那弄个旧版本吧,不难吧。。旧版本还我勒个去不能再ubuntu11.10上编译。。。。。后来纠结到了win32上,得把firefox删了,下个3.X的版本。。。
搞了好久,搞的好无语,最后周导居然还真的整出来了。。。这都不是重点,重点是我感觉这太难搞了,平台要求太高啊,兼容性太差啦。。 好吧其实是我嫌麻烦。。。
然后我打开了google,输入 watir java。 喵了个咪的,这不是有watij(web application test in java)吗!
一开始我还以为只是不用装ruby了而已,用了之后发现,什么系统版本,什么firefox版本都弱爆了好不好,别人直接把mozilla给你封装好了,直接用啊。所以最后发现真的是很简单。。

01 package com.zhiweizhang.crawler;
02  
03 import java.io.BufferedWriter;
04 import java.io.File;
05 import java.io.FileWriter;
06  
07 import org.watij.webspec.dsl.Tag;
08 import org.watij.webspec.dsl.WebSpec;
09  
10 public class WatijCrawler {
11  
12     private static String homepage = "http://jwc.hust.edu.cn:81/index.aspx";
13  
14     //教学楼对应value值,西十二8,东九7,西五5,东十二1
15     private static String[] building = {"西十二""东九""西五""东十二"};
16     private static String[] buildingValue = {"8""7""5""1"};
17  
18     public static void main(String[] args) throws Exception {
19         //打开网页,并隐藏webspec界面
20         WebSpec ws = new WebSpec().mozilla().hide();
21         ws.open(homepage);
22  
23         for (int i = 0; i < 4; i ++) {
24             System.out.println("Fetching information of building " + building[i]);
25             ws.find.select().with.id("Build").set("value", buildingValue[i]);//选择教学楼
26             ws.find.input().with.name("btnRightall").click();//选择所有教室
27             ws.find.input().with.name("Button1").click();//点击查询
28             int page = 0;
29             File file;
30             Tag tag = ws.find.a().with.innerText("后页");
31             //下载所有页的网页
32             while (tag.exists()) {
33                 page++;
34                 file = new File(building[i] + "/" + page + ".html");
35                 BufferedWriter bw = new BufferedWriter(new FileWriter(file));
36                 System.out.println("Downloading page " + page + " ...");
37                 bw.write(source());
38                 bw.close();
39                 tag.click();
40                 tag = ws.find.a().with.innerText("后页");
41             }
42             System.out.println("All the pages have been downloaded.");
43         }
44     }
45  
46 }

太方便了,这个斑马以后登录各种网站都可以直接这么写了。
值得一提的是,watij其实是一个测试工具,用于测试web应用,就如名字所说。。。

详情参考:http://watij.com/

0
0
查看评论

Watij 在WINDOWS 7 能使用吗?

Are you using the old api or the new WebSpec api?  WebSpec works fine on Win 7 X 64.  Two solutions. Best solut...
  • aerchi
  • aerchi
  • 2012-03-31 11:59
  • 3757

用watij爬取网页内容

前段时间,移动组找我帮忙抓个数据:http://jwc.hust.edu.cn:81/index.aspx,我看了看,觉得应该没问题吧,就答应了。后来发现,asp.net真不是一般的变态啊。。。 尝试了各种方法,都不行,只好请教师傅。师傅也很纠结,后来不知道从哪儿搜出了个方法,用watir(web...
  • aerchi
  • aerchi
  • 2011-12-20 12:49
  • 1805

python爬取网页内容

上次学习了用python爬取网页上的图片,这次来学习一下怎么用python来获取网页上我们感兴趣的内容。 目标:爬取简书首页的文章标题,链接,阅读量,评论数,收藏数。 步骤:和上节相同,关键在于正则表达式的选取。 import re import urllib def getHtml(...
  • soophoop
  • soophoop
  • 2017-05-01 20:19
  • 1637

利用Jsoup爬取网页内容

jsoup的强大之处在这里就不多说,最近在写项目,需要爬取网页上的内容,自然想到的是利用Jsoup来处理,项目中是利用Jsoup爬取学校信息门户的新闻消息,然后放进客户端 网页的html代码如下8月30日,日照市常务副市长王斌一行人来我校进行调研。校长戚万学,副校长康淑敏、杨冰等热情接待了王斌一行...
  • xieluoxixi
  • xieluoxixi
  • 2016-09-04 10:26
  • 2456

Python定时爬取某网页内容

前言 昨天小伙伴说他最近在投资一个类似比特币的叫ETH币(以太币),他想定时获取某网站以太币的“购买价格最低”和“出售价格最低”,他自己没学过Python,也找到一个定时获取股票的例子(没看懂),看我平时有在玩Python,就问我能不能做到;平时我对Python挺感兴趣的,就想试试看。 思路...
  • qq807237096
  • qq807237096
  • 2017-12-13 17:08
  • 233

关于网页抓取信息 Jsoup 和 HttpUnit 的使用

之前看了看 洪祥的csdn app 制作,里面有从网页抓取数据的. 之前对这块操作没有接触过,所以网上差了一些资料,现在整理下相关的内容. 首先是关于Jsoup , Jsoup 是网页抓取的首选.但是请注意: 如果Jsoup去抓取的页面的数据,全都是页面加载完成后,ajax获取形成的,是抓取不...
  • u010833696
  • u010833696
  • 2015-05-15 09:59
  • 1771

c简单实现爬取网页

实例: #include #include #include #include #include #include #include #include #include #include #include int main() { int sockfd; struct sockad...
  • chinabhlt
  • chinabhlt
  • 2015-03-14 23:47
  • 851

java爬取网页内容 简单例子

java爬取网页内容 简单例子(1)——使用正则表达式 【本文介绍】   爬取别人网页上的内容,听上似乎很有趣的样子,只要几步,就可以获取到力所不能及的东西,例如呢?例如天气预报,总不能自己拿着仪器去测吧!当然,要获取天气预报还是用webService好。这里只是举个例子。话不多...
  • donglynn
  • donglynn
  • 2015-08-19 11:26
  • 26475

java学习--网络爬虫(使用jsoup爬取网页内容)

【准备工作】 下载:jsoup-1.6.1.jar   【先看效果】 目标网站:中国天气  目的:获取今天的天气 目标HTML代码: li class="dn on" data-dn="7d1"> h1>今天...
  • jbfsdzpp
  • jbfsdzpp
  • 2015-01-19 22:08
  • 3213

JAVA爬取网页内容

在此之前,大家先了解一个Jsoup,一个html页面解析的jar包。 如果你上面的Jsoup看完了。 前期准备工作:需要去查看一下要爬的网页的结构,对自己要爬的数据的标签要熟悉。 操作:在页面上按F12查看标签的内容。 就是js+css+html标签的构造,我们使用比较多的是a、img这两...
  • guoxiaolongonly
  • guoxiaolongonly
  • 2016-05-25 12:55
  • 6387
    个人资料
    • 访问:6369341次
    • 积分:61308
    • 等级:
    • 排名:第53名
    • 原创:333篇
    • 转载:1720篇
    • 译文:19篇
    • 评论:178条
    博客专栏
    网上乐园
    最新评论