是否可以将来自Airbnb的数据直接剪贴到Google表格中?

时间:2018-09-04 20:38:26

标签: google-apps-script web-scraping google-sheets

我正在尝试构建一个超级简单的Google表格仪表板,实时比较Airbnb和Booking.com上特定列表/房间的D + 7和D + 30价格。

在Booking.com方面,这非常简单:我刚刚创建了一个公式,将URL与入住/退房日期,来宾人数和旅行持续时间作为参数连接在一起,并使用= IMPORTXML函数和适当的课,我能够自动获取价格。

在Airbnb上难度更大,因为价格是动态的(请参见此处:https://www.airbnb.com/rooms/25961741)。当我使用合适的类时,会在Google表格上收到“ N / A错误,导入的内容为空”。

我还尝试使用带有REGEX函数的Airbnb API提取价格,但在列表信息中设置的价格是默认价格,不能反映现实情况:

  

“价格”:1160,“价格格式”:“ $ 1160”

https://api.airbnb.com/v2/listings/25961741?client_id=d306zoyjsyarp7ifhu67rjxn52tv0t20&_format=v1_legacy_for_p3&number_of_guests=1

您现在是否可以通过其他任何方式访问此动态价格并将其自动解析为电子表格?似乎我正在HTML代码的meta标签中寻找数据,而且我不知道是否可以使用= IMPORT函数将其抓取到Google工作表中。

也许带有脚本?

非常感谢!

1 个答案:

答案 0 :(得分:2)

我很好奇您是否无法直接使用ABNB API;如果您尝试直接提供站点服务怎么办?看看这个URL:

https://www.airbnb.com/api/v2/explore_tabs?version=1.3.9&satori_version=1.0.7&_format=for_explore_search_web&experiences_per_grid=20&items_per_grid=18&guidebooks_per_grid=20&auto_ib=false&fetch_filters=true&has_zero_guest_treatment=false&is_guided_search=true&is_new_cards_experiment=true&luxury_pre_launch=false&query_understanding_enabled=true&show_groupings=true&supports_for_you_v3=true&timezone_offset=-240&client_session_id=8e7179a2-44ab-4cf3-8fb8-5cfcece2145d&metadata_only=false&is_standard_search=true&refinement_paths%5B%5D=%2Fhomes&selected_tab_id=home_tab&checkin=2018-09-15&checkout=2018-09-27&adults=1&children=0&infants=0&click_referer=t%3ASEE_ALL%7Csid%3A61218f59-cb20-41c0-80a1-55c51dc4f521%7Cst%3ALANDING_PAGE_MARQUEE&allow_override%5B%5D=&price_min=16&federated_search_session_id=5a07b98f-78b2-4cf9-a671-cd229548aab3&screen_size=medium&query=Paris%2C%20France&_intents=p1&key=d306zoyjsyarp7ifhu67rjxn52tv0t20&currency=USD&locale=en

这是对ABNB的实时页面搜索的GET请求;现在,我对ABNB的了解不多,但是从JSON feed的清单部分可以看到,它的定价因素确实与您提供的API结果有所不同;我不确定您到底需要拉什么,但这可能会引导您朝正确的方向前进。检查“列表”数组,看看是否可以使用某些东西。

请记住,如果您希望自动抓取这些数据,则需要生成新的搜索会话;但首先您要查看这是否是您要查找的数据类型。

另一个选择,Google CSE的API;我已经根据Schema.org的标记将数据显示在网站在Google中的页面标题中;但这可能是延迟的数据,并且您似乎需要实时;最好的方法是重新研究上面的示例,或者尝试确保ABNB的自然API(出于某种原因他们提供其功能?是的;必须有一种方法来获得您所需要的东西)。

希望我的回答有助于您朝正确的方向前进!