加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 湛江站长网 (https://www.0759zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

完美假期第一步:用Python寻找最便宜的航班!

发布时间:2019-06-04 16:39:09 所属栏目:建站 来源:大数据文摘
导读:副标题#e# 大数文摘出品 编译:高延、熊琰、胡笳、蒋宝尚 你喜欢旅游吗? 这个简单的问题经常会得到一个积极的回复甚至还会额外收到一个或两个冒险的故事。通常来讲,旅行是一种体验新文化和拓宽自己视野的好方法。 但如果把问题换成你喜欢查机票的过程吗?,

每当短时间内多次使用get命令的时候,系统就会跳出验证码检查。你可以手动解决验证码问题,并在下一个问题出现之前继续测试脚本。从我的测试来看,第一次搜索运行似乎一切正常,所以如果你想要用这段代码,并且让它们之间保持较长的执行间隔,就可以解决掉这个难题。你并不需要每10分钟就更新这些价格,不是吗?!

XPath的坑

目前为止,我们打开了一个浏览器窗口并获得了网址。接下来我会使用XPath或者CSS选择器来抓取价格等其他信息。曾经我也只用XPath,当时我觉得没必要用CSS,但是现在看来最好结合着用。你可以直接用浏览器复制网页XPath来用,你也会发现由XPath虽可以定位网页元素但是可读性很差,所以我渐渐意识到只用XPath很难获得你想要的页面元素。有时候,指向得越细就越不好用。

完美假期第一步:用Python寻找最便宜的航班!

接下来,我们用Python来选择出最低票价的页面元素。上述代码中红色部分就是XPath选择器的代码,在网页中,你可以在任意位置点击右键并选择“检查”来找到它。试试吧,在你想看代码的地方点右键,“检查”它。

完美假期第一步:用Python寻找最便宜的航班!

为了说明我前面所说的XPath的不足,请大家对比如下差异:

  1. 1 # This is what the copy method would return. Right click highlighted rows on the right side and select "copy > Copy XPath" 
  2. //*[@id="wtKI-price_aTab"]/div[1]/div/div/div[1]/div/span/span 
  3.  
  4. 2 # This is what I used to define the "Cheapest" button 
  5. cheap_results = ‘//a[@data-code = “price”]’ 

上述代码中,第二种方式的简洁性清晰可见。它会去搜素具有data-code属性值为price的a元素。而第一种方式则是去搜素一个id为wtKI-price_aTab元素,且该元素嵌在5层div及2层span内。对于这次页面,它能起作用,但这里的坑在于,下次加载页面时,这个id会变,而且每次加载时wtKI值也是动态变化的,所以到时候这段代码就无效了。所以多花点功夫研究一下XPath表示的内容还是对你有价值的。

完美假期第一步:用Python寻找最便宜的航班!

不过这种直接复制XPath的方法对于那些不是很复杂善变的页面来说还是蛮好用的。

(编辑:PHP编程网 - 湛江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!