我正在解决一个具有挑战性的问题:在预订过程后寻找获取数据的解决方案。基本上,我有一张带有表格的页面(SLIM FORM),我需要自动填写来自提供者表单(例如easyjet.com或hotels.com,基本上任何预订网站)的信息。例如:https://secure.booking.com/hotel/es/royal.html?sid=1c2bab12a0c64a541728840f52cd6401;errorc_checkin_invalid=checkin;errorc_intro_error_message_invalid=intro_error_message;errorv_stage=1;errorv_checkin=2011-07-05;errorv_hotel_id=90228;errorv_installment_count=1;errorv_hostname=www.booking.com;errorv_nr_rooms_9022801_80638194_0=1;errorv_interval=1我预订的信息是我需要得到的。在外部网站上完成预订完成后(cURL,iFrame ...?)检索信息
我做了一些测试,这里是我发现了什么,现在:
这是不可能同时拥有在同一页上,因为卷曲,有与外部没有通信服务器和iframes,它会尽快离开页面iframe的src更改。
所以,我决定,预订过程应该发生一个专门的页面,在预约提供商(easyjet.com ...)
1)我说得对不对,审议关于执行预订的域名真正的网站,还是有办法在我的网页上包括外部网站,并执行其中的预订的全部过程(基本上填写表格出发,到达日期等)?
如果不可能,我做了一些测试,以卷曲并得出这样的结论:
_我必须定义拟合正则表达式为每个供应商,我的印象是,一些有机制来识别卷曲和阻止它。 (如lufthansa.com),但它工作得很好与他人(booking.com)
我有2个其它附加问题:
2)是否有比卷曲更好的解决方案来分析一些HTML页面中(尤其是因为如果URL不包含sessionID,它不起作用)?我想也许使用像硒这样的东西...
3)如何触发我的cURL解析在其他选项卡或窗口? (我在想类似书签的一个系统,可以引发一些JavaScript代码)
谢谢您的回答,并遗憾的长度:-)
更新:根据我收到的,这里的答案是新鲜想法:对于大型提供商(easyjet,hotels.com等),我会使用API(如果可用)。对于小型服务提供商(例如http://www.hotel-gare-clermont.com/en,1,6217.html),我认为代理解决方案是值得另一个解决方案的,我不会收到任何关于“Hotel de la Gare”法律问题的投诉,同时为这些小型提供商增加了可见性。你怎么看?
请记住,您应该尝试与提供商交谈 - 他们可能会提供一个API接口,他们可能会反对并阻止服务器IP(尽管这对他们来说是生意的,所以不太可能) – 2011-05-04 00:58:25