2
这是一个订票网站的源代码的一部分:如何使用nokogiri和机械化从<script>标签中提取文本?
<script>
booking.ensureNamespaceExists('env');
booking.env.b_map_center_latitude = 53.36480155016638;
booking.env.b_map_center_longitude = -2.2752803564071655;
booking.env.b_hotel_id = '35523';
booking.env.b_query_params_no_ext = '?label=gen173nr-17CAEoggJCAlhYSDNiBW5vcmVmaFCIAQGYAS64AQTIAQTYAQHoAQH4AQs;sid=e1c9e4c7a000518d8a3725b9bb6e5306;dcid=1';
</script>
而且我想提取booking.env.b_hotel_id
。所以我会得到'25523'的值。我如何用nokogiri和机械化来实现这一点?
希望有人能帮助!谢谢! :)
嗨,谢谢!但如果我想提取其他信息,如b_map_center_latitude或b_map_center_longitude?它会一样吗?并像这样:.scan(/^booking.env._map_center_latitude = \'。* \'/)? –
由于这些变量的值不是字符串,因此不用引号括起来,你可能想要拿掉每个'\',并用'\;'替换后者来限制分号上的正则表达式,如下所示: '/^booking.env.b_map_center_latitude =。* \; /'但是,我在booking.com上找到的页面用逗号结束了每个变量声明行,因此您可能需要'/^booking.env.b_map_center_latitude =。* \,/'代替。与Rubular玩耍,这是有趣的和教育! – Jason
我试过/^booking.env.b_map_center_latitude =。* \,/但没有得到任何回报。 !只是空字符串...我仍然觉得这是很难理解:( –