【问题标题】:Site does not respond equal with web browser or with curl网站与 Web 浏览器或 curl 的响应不同
【发布时间】:2014-02-08 13:46:21
【问题描述】:

我想练习编程制作一个简单的应用程序,该应用程序通过 HTTP 请求网站以获取酒店的价格。我今年夏天要去旅行,我想知道这两个月的最低价格。

我想在 booking.com 中获取酒店的价格。当我使用网络浏览器时,我会看到价格,但是当我使用 PHP cUrl 时,该站点不会以相同的 HTML 数据响应。使用 cUrl 我无法看到酒店的价格。

我怀疑问题可能出在会话或 cookie 上。我已经尝试了 2 周,但我无法解决它。

网址是http://www.booking.com/hotel/us/blakely-new-york.es.html?aid=356984;label=gog235jc-district-es-us-newNyork_manhattan-unspec-es-com;sid=f44e42aec5d1476017c8ab1841371d7b;dcid=1;checkin=2014-05-04;checkout=2014-05-10;srfid=d06488818183ccefd944221a0e84c2e00d121135X20

谁能帮帮我? 提前致谢!!

【问题讨论】:

  • curl 会获取网站返回的 html,但如果网站内容是通过 ajax 调用构建的,它不会为您执行任何 javascript
  • 您是否使用 curl 保存 cookie? booking.com 依赖它。
  • 我不知道该怎么做...也许 cookie 是问题...我尝试过使用 file_get_contents,使用基本 curl 和 simple_html_dom,但我总是得到相同的 html,但没有价格。

标签: php curl screen-scraping session-cookies


【解决方案1】:

booking.com 并不是那么简单。要从 Booking.com 检索信息,您应该become an affiliate partner 他们,以便您可以访问他们的 API。然后,使用 API 从他们的网站获取您需要的任何信息。

【讨论】:

  • 谢谢阿格洛斯!我只想让它知道一个价格。也许 booking.com 没有让我访问 API 来执行此操作。你怎么看?
  • 我认为 booking.com 不会让您仅以单一价格访问他们的 API。所以...如果是一次性解决方案,您可以使用简单的dom解析器(simplehtmldom.sourceforge.net)来获取html页面的所有元素并找到具有价格的元素。
  • 我上周尝试过该课程,但我认为预订检测到我是“机器人”并且不在我获得的 html 上显示价格。
  • 是的,问题不在于解析,但在使用 cURL 时,您甚至没有得到您请求的站点
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-14
  • 2023-03-28
  • 2016-01-11
  • 2019-09-22
  • 2021-02-12
  • 1970-01-01
  • 2011-09-07
相关资源
最近更新 更多