python爬取去哪儿网机票_去哪儿网机票爬虫

最近公司有一个新的需求,就是需要爬某一天飞机票的数据,先让我爬携程,去哪儿网的数据,携程的话,还是比较简单的,但是在去哪儿网就遇到问题了,刚开始的时候我是用requests模块来爬去哪儿网,在请求的头信息,有一些随机值,每次请求都不一样,即使你使用上一次请求的随机值,还是会给你返回假数据。我自己给它生成一些随机字符串去请求,但依然返回假数据。最后没有办法,我只能使用selenium大法了。

在使用selenium的过程中,去哪儿网还做了一些反selenum爬虫:

1. 用js识别了selenium

当我把地点,时间都选好了,点击加载,进入到各个航班信息页面,其他部分都显示了,核心数据,一直加载中,我电脑都死机了好几次。

这种反爬第一次遇到,只能百度了,最后在这位大神找到解决办法,链接:https://www.cnblogs.com/xieqiankun/p/hide-webdriver.html

解决:

在option加参数, 试浏览器停止“开发者模式运行”;我使用的chrome浏览器,所以:

option = webdriver.ChromeOptions()

option.add_experimental_option('excludeSwitches', ['enable-automation'])

然后数据就成功显示出来,

2. 在飞机票价格上,使用css,把价格打乱,让你爬不到真正的价格

在我以为即将成功的时候,发现一个新的问题了,使用xpath匹配的数据,有很多打乱的数据,而且还有一些干扰数据在里面:

6

5

6

7

真正的价格:756

规则:

主要看css宽度

如上面:

总宽度48px

展示的值b标签里面的i标签的text值,除了一个b标签是用来展示的,其他b标签的值替换i标签中text值即为真正的值。

每个b标签里面style中left值表示位置,如left:-48px, 替换第一个i, 如果left:-16px, 就替换第3个i。

思路就是这样的了,代码我放到github上面的,链接:https://github.com/bobos008/Airticket

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值