2013-05-08 90 views
1

我正在为我的课做一个小项目,我只是一个初学者,所以请原谅我,如果我混淆了我的一些术语。填写表格后刮取数据?

基本上,我为我的城市的公共交通系统创建了一个交互式旅程规划。不幸的是,他们还没有提供我需要公开的所有数据。因此,我没有花时间收集数据供个人使用,而是选择了一些屏幕截图 - 让他们的服务器从START和STOP变量计算出行程信息,然后在我的页面上显示选定的信息。

那么是否有可能远程填写表单的字段,然后刮取随后加载的页面上的数据?如果是这样,那么最快,最方便的方式是什么?这恰好是无法通过URL操作数据的情况,因此必须先填写表单以访问数据。

相关网站: http://jp.translink.com.au/travel-information/journey-planner

+0

您是否知道任何编程语言? – pguardiario 2013-05-10 00:00:16

回答

1

这里是你可以做什么:

1)发送POST请求到journey-planner用这样的一些数据(注意,CORS会跳,那么你可以使用cURL通过PHP或任何):

Start:Wickham Tce, Spring Hill 
End:Upper Edward St, Spring Hill 
SearchDate:10/05/2013 12:00:00 AM 
TimeSearchMode:LeaveAfter 
SearchHour:7 
SearchMinute:40 
TimeMeridiem:AM 
TransportModes:Bus 
TransportModes:Train 
TransportModes:Ferry 
MaximumWalkingDistance:1500 
WalkingSpeed:Normal 
ServiceTypes:Regular 
ServiceTypes:Express 
ServiceTypes:NightLink 
FareTypes:Standard 
FareTypes:Prepaid 
FareTypes:Free 

2.)你会得到一个新的响应位置。这似乎是一个REST链接。最重要的是id。您将不得不打电话到该页面并解析HTML,然后查找HTML代码为option-summariesdiv,您将在divtravel-option-1travel-option-n中找到更多信息。您必须仔细查看以确定哪些信息存储在哪里以及您将如何使用它。

为了找到这些东西,你应该学习如何使用Firebug或Chrome的开发工具。

这是解决您的问题的一种方法。可能不是最好的,但比“屏幕抓取”任何东西都要好。但它会问你很多技巧和努力。此外,如果数据提供者将要改变一点,您的解决方案将不再适用。此外,他们可能会阻止您访问CORS或其他任何东西(阻止您的IP等)