gpt4 book ai didi

php - 在外部网站上完成预订后检索信息(cURL、iFrame...?)

转载 作者:可可西里 更新时间:2023-11-01 13:11:36 24 4
gpt4 key购买 nike

我正在处理一个具有挑战性的问题:找到一个解决方案以在预订流程后获取数据。基本上,我有一个带有表单(SLIM FORM)的页面,我需要自动填写来自 vendor 表单的信息(例如 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我预订中的信息是我需要得到的。

enter image description here

我做了一些测试,现在是我发现的:

不可能将两者都放在同一页面上,因为使用 cURL 时,没有与外部服务器的通信,而使用 iframe 时,它​​会在 iframe 的 src 更改时尽快离开页面。

因此,我决定预订流程应该在预订提供商 (easyjet.com...) 域中的专用页面上进行

1) 我考虑在真实网站上进行预订是否正确,或者有没有办法在我的页面上包含外部网站并在其中执行整个预订过程(主要是填写出发日期、到达日期等表格) ...)?

如果不可能,我用 cURL 做了一些测试并得出了这个结论:

_ 我将不得不为每个提供商定义合适的正则表达式,我的印象是有些提供商具有识别 cURL 并阻止它的机制。 (例如 lufthansa.com)但它与其他网站(booking.com)配合得很好

我还有两个问题:

2) 是否有比 cURL 更好的解决方案来解析页面中的某些 HTML(特别是因为如果 URL 不包含 sessionID,它就不起作用)?我在想也许可以使用像 Selenium 这样的东西......

3) 如何在其他选项卡或窗口上触发我的 cURL 解析? (我在想一个类似于书签的系统,可以触发一些JavaScript代码)

感谢您的回答,抱歉太长了:-)

更新:根据我收到的答复,这里有一些新想法:对于大型 vendor (easyjet、hotels.com 等...),我将使用可用的 API。对于小型 vendor (例如 http://www.hotel-gare-clermont.com/en,1,6217.html ),我认为代理解决方案值得另一种解决方案,并且我不会收到来自“Hotel de la Gare”的任何关于法律问题的投诉,同时增加这些小型 vendor 的知名度。你怎么看?

最佳答案

1) 这是可能的,但它有边缘非法的副作用。您不能只对提供商表单进行 scape 处理并在 iframe 中保留他们的页面。如果提供者发现您这样做,您可能会被起诉。

您需要与各个 vendor 签订合作协议(protocol)。有了这个协议(protocol),他们可能会开放一个 API(应用程序编程接口(interface))供您使用。这将使您能够更直接地查询他们的网站,并以干净且经过批准的方式进行预订。


2) cURL 是一个很棒的库,它可以很好地完成获取网页的工作。互联网上有很多将页面获取到字符串的示例。就解析该字符串而言,在理想情况下,您可以使用 XML 解析器。不幸的是,HTML 页面的构造非常糟糕,这使得它们难以解析。大多数编码人员在必须解析 HTML block 时倾向于使用正则表达式。

为了获得 session ID,您的第一个 cURL 请求应该发送到 example.com 上的登录表单。通过尝试获取 http://example.com?username=bob&pass=secret 来伪造登录表单的提交.您可以通过在服务器响应中查找文本“成功登录”或类似内容来检查登录是否有效。您可以从响应 header 中获取 session ID(如果它是 cookie)。后续的 cURL 请求应该发送您的 cookie。


3) cURL 在服务器端运行,因此完全不知道您打开的选项卡。您可以使用 Javascript 来查询选项卡,但我敢打赌,出于安全原因,大多数浏览器都不允许您这样做。

关于php - 在外部网站上完成预订后检索信息(cURL、iFrame...?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5674856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com