我正在尝试使用Ben Nadel的CFHTTPSession.cfc登录http://britishairways.com/,但我无法让它工作。我不确定我错过了什么或忽略了什么。
这是我的代码:
<cfset objResponse = objHttpSession
.NewRequest( "https://www.britishairways.com/travel/home/execclub/_gf/en_us" )
.Get()/>
<cfset objResponse = objHttpSession
.NewRequest( "https://www.britishairways.com/travel/loginr/public/en_us" )
.AddFormField( "membershipNumber", "#username#" )
.AddFormField( "password", "#password#")
.AddFormField( "Directional_Login","/travel/home/execclub/_gf/en_us" )
.AddFormField( "eId", "109001")
.AddFormField( "URLMembershipType", "onbusiness")
.AddFormField( "rememberLogin", "false")
.Post()/>
<cfset objResponse = objHttpSession
.NewRequest( "https://www.britishairways.com/travel/home/execclub/_gf/en_us" ).Get()/>
答案 0 :(得分:4)
大多数航空公司(以及其他与旅行相关的网站)都有相当严格的系统来监控他们所称的“屏幕抓取”,例如屏幕抓取等。对他们的系统进行自动尝试,因此您可能会遇到障碍。
同样,通过做你正在做的事情,你违反了他们的网站使用条款(http://www.britishairways.com/en-gb/information/legal/website-terms-conditions),特别是:
使用'屏幕抓取',任何自动算法,设备,方法,系统,软件或手动过程来访问,使用,搜索,复制,监控或提取材料(全部或部分)来自或通过使用本网站,除非我们已经明确书面同意;
因此,您可能会因BA而面临法律诉讼。我会停下来。
对不起,我确定这不是你想听到的。