近日,随着多个利好政策发布,多平台火车票、机票搜索量11月上半月出现激增,国际机票价格持续回落。11月15日,文化和旅游部发布通知称,明确优化跨省旅游管理政策,跨省旅游经营活动不再与风险区实施联动管理。 据发布数据显示在线旅游平台“去哪儿”火车票预订量环比前一日增长1倍,16日5点又迎来一波小高峰。15日消息发布后一小时内,在线旅游平台“同程旅行”机票、火车票等交通产品搜索量较前一日上涨,涨幅分别为182%和97%。国际机票方面,11月来预订量呈现明显上升趋势。 刚好最近公司有一个新的需求,就是需要爬某一天飞机票的数据,我先是爬携程,去哪儿网的数据,携程的话,还是比较简单的,但是在去哪儿网就遇到问题了,刚开始的时候我是用requests模块来爬去哪儿网,在请求的头信息,有一些随机值,每次请求都不一样,即使你使用上一次请求的随机值,还是会给你返回假数据。经过简单分析网站,发现网站对IP的限制比较要,所以这里只要添加上代理IP就能解决了。刚好公司之前购买的亿牛云代理还没有到期,刚好继续使用到这个项目上。我们使用的是动态转发隧道模式的,这里加入代理IP实现下爬取过程: Plain Text 复制代码
#! -- encoding:utf-8 --
1import requests 2import random 3 4# 要访问的目标页面 5targetUrl = "http://httpbin.org/ip" 6 7# 要访问的目标HTTPS页面 8# targetUrl = "https://httpbin.org/ip" 9 10# 代理服务器(产品官网 www.16yun.cn) 11proxyHost = "t.16yun.cn" 12proxyPort = "31111" 13 14# 代理验证信息 15proxyUser = "username" 16proxyPass = "password" 17 18proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % { 19 "host" : proxyHost, 20 "port" : proxyPort, 21 "user" : proxyUser, 22 "pass" : proxyPass, 23} 24 25# 设置 http和https访问都是用HTTP代理 26proxies = { 27 "http" : proxyMeta, 28 "https" : proxyMeta, 29} 30 31 32# 设置IP切换头 33tunnel = random.randint(1,10000) 34headers = {"Proxy-Tunnel": str(tunnel)} 35 36 37 38resp = requests.get(targetUrl, proxies=proxies, headers=headers) 39 40print resp.status_code 41print resp.text
果然加了代理就容易多了,获取的数据后期需要进行清洗,分析后才能算是干净的数据。很多网站都是有严格的反爬限制,所以在获取数据的前需要多做些反爬措施,可以加快获取数据的速度和数量。
