【问题标题】:Scraping data after filling out form?填写表格后抓取数据?
【发布时间】:2013-05-10 03:39:05
【问题描述】:

我正在为我的班级做一个小项目,我只是一个初学者,所以如果我混淆了我的一些术语,请原谅我。

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

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

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

【问题讨论】:

  • 你知道任何编程语言吗?

标签: html screen-scraping


【解决方案1】:

你可以这样做:

1.) 使用类似的数据向journey-planner 发送 POST 请求(注意 CORS 可能会加入,然后您可以通过 PHP 或其他方式使用 cURL):

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-id option-summariesdiv,您将在 divs travel-option-1travel-option-n 中找到更多信息。您必须仔细查看它,以了解存储了哪些信息以及如何使用它。

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

这是解决问题的一种方法。可能不是最好的,但仍然比“屏幕抓取”任何东西都要好。但它会要求你大量的技能和努力。此外,如果数据提供者只是稍作改变,您的解决方案将不再有效。此外,他们可能会阻止您通过 CORS 或其他任何方式访问(阻止您的 IP 等)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-06
    • 1970-01-01
    • 2022-01-06
    • 2021-03-06
    • 1970-01-01
    相关资源
    最近更新 更多