【问题标题】:Android/Java: Simulate a click on this webpageAndroid/Java:模拟点击此网页
【发布时间】:2010-07-14 09:09:54
【问题描述】:

去年我做了一个Android应用程序,它取消了我在比利时的火车公司的信息(应用程序是BETrains:http://www.cyrket.com/p/android/tof.cv.mpp/

这个应用程序真的很酷,允许用户与火车上的其他人交谈(一个消息服务器由我运行)并且对话也在 Twitter 上:http://twitter.com/betrains

比利时的每个人都喜欢它。公司试图避免我们使用他们的数据,让一些用户的网站关闭,但他们是一些攻击公司的律师,最后我们没有更多的问题,网站是开放的:http://blog.tuinslak.org/2010/07/irail-is-back

所以,从法律上讲,我的申请(目前)是完全正确和合法的,但我没有得到火车公司的帮助。

所以我的问题对获取数据有点帮助。我现在是一个 android/java 初学者,花了几个星期来尝试找到一个解决方案,但也许喜欢的人会在几分钟内找到它。

所以问题是下一个。您可以查看以下 URL,您会在 URL 中找到 2 个城市名称:Mons 和 Tournai,以及有关日期和时间的信息。那是一年有效的旧方法:

http://hari.b-holding.be/Hafas/bin/query.exe/en?&REQ0JourneyStopsS0A=1&REQ0JourneyStopsS0G=MONS%20[b]&REQ0JourneyStopsZ0A=1&REQ0JourneyStopsZ0G=TOURNAI%20[b]&REQ0JourneyDate=27.010.10&REQ0JourneyTime=19:030&Timesel=depart&ViaName=&ViaMode=NEE&DateMode=ANDERS&PLANNER=TRUE&start=1&queryPageDisplayed=yes

但是现在,该 URL 将我带到一个确认页面,我必须单击确认按钮才能进入下一页。

所以我的代码将不再工作,我需要以编程方式单击此按钮才能到达正确的网页。

您对如何模拟单击此按钮有任何想法吗?现在我的代码是经典的报废代码,顶部有几行 URL。我假设 URL 给了我结果页面。直到上周都是这样。

DefaultHttpClient httpclient = new DefaultHttpClient();
        HttpGet get = new HttpGet(mon_url);
        HttpResponse response;
            try {
                  response = httpclient.execute(get);
                  HttpEntity entity = response.getEntity();        
                  BufferedReader buf = new BufferedReader(new InputStreamReader(entity.getContent()));
                 etc...

您对如何改进代码有任何想法吗?

由于该软件是免费的,我无法向贝宝汇款,但整个国家都会非常感谢可能提供帮助的人!

非常感谢。

【问题讨论】:

    标签: java android web-services screen-scraping web-scraping


    【解决方案1】:

    与其尝试自动单击 JavaScript 按钮,不如尝试监控发送的请求,然后在您的应用中复制该请求。有各种 Firefox 扩展程序可以帮助您执行此操作,例如 TamperDataFirebugLiveHttp

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-03
      • 1970-01-01
      • 1970-01-01
      • 2011-01-24
      • 2015-11-02
      • 2020-04-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多