uibot进行携程航班信息查询

uibot进行携程航班信息查询

// 打开携程网站
hWeb = WebBrowser.Create("chrome","https://www.ctrip.com/",30000,{"bContinueOnError":False,"iDelayAfter":300,"iDelayBefore":200,"sBrowserPath":"","sStartArgs":""})
// 鼠标移动到机票按钮
#icon("@res:djv3tseo-b9u9-6mcm-f78t-o38oc56phec7.png")
Mouse.Hover({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"A","id":"nav_flight"}]},10000,{"bContinueOnError":False,"iDelayAfter":300,"iDelayBefore":200,"bSetForeground":True,"sCursorPosition":"Center","iCursorOffsetX":0,"iCursorOffsetY":0,"sKeyModifiers":[],"sSimulate":"simulate","bMoveSmoothly":False})
// s鼠标点击国内/国际·中国港澳台机票
#icon("@res:s4bgs4ea-es9l-lt2j-f1ia-1g8jkl9r8pov.png")
Mouse.Action({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"A","id":"c_flights_f"}]},"left","click",10000,{"bContinueOnError":False,"iDelayAfter":300,"iDelayBefore":200,"bSetForeground":True,"sCursorPosition":"Center","iCursorOffsetX":0,"iCursorOffsetY":0,"sKeyModifiers":[],"sSimulate":"simulate","bMoveSmoothly":False})
#icon("@res:gcn8aiuq-abda-ffqt-q7v1-5br64e3gt5kb.png")
// 设置出发地
UiElement.SetValue({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"INPUT","name":"owDCity","parentid":"searchForm"}]},"长沙",{"bContinueOnError":False,"iDelayAfter":300,"iDelayBefore":200})
#icon("@res:vh1d00h1-0iub-01bl-kk5i-rhvvtjcscait.png")
// 设置目的地
UiElement.SetValue({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"INPUT","name":"owACity"}]},"北京",{"bContinueOnError":False,"iDelayAfter":300,"iDelayBefore":200})


dTime = Time.Now()
TracePrint(dTime)
// 获取明天的时间
iRet = Time.DateAdd("d",1,dTime)

sRet = Time.Format(iRet,"yyyy-mm-dd")
#icon("@res:nhghebij-m7j4-0507-cejm-bkqlnriqqqhe.png")
js = "function(){
    document.querySelector('#datePicker .date-components input').value = '"&sRet&"'
    document.querySelector('#datePicker .date-components input').click()
    document.querySelector('#searchForm .search-btn').click()
    return 123
}"
sRet = WebBrowser.RunJS(hWeb,js,True,{"bContinueOnError":False,"iDelayAfter":300,"iDelayBefore":200})
#icon("@res:c1ng56st-kctq-70ta-lim2-k8di8u4ultsg.png")
Mouse.Action({"wnd":[{"cls":"Chrome_WidgetWin_1","title":"*","app":"chrome"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}],"html":[{"tag":"A","aaname":"确认"}]},"left","click",10000,{"bContinueOnError":False,"iDelayAfter":300,"iDelayBefore":200,"bSetForeground":True,"sCursorPosition":"Center","iCursorOffsetX":0,"iCursorOffsetY":0,"sKeyModifiers":[],"sSimulate":"simulate","bMoveSmoothly":False})
arrayData = UiElement.DataScrap({"html":[{"id":"base_bd","tag":"DIV"}],"wnd":[{"app":"chrome","cls":"Chrome_WidgetWin_1","title":"*"},{"cls":"Chrome_RenderWidgetHostHWND","title":"Chrome Legacy Window"}]},{"Columns":[{"props":["text"],"selecors":[{"className":"base_main","index":0,"prefix":"","tag":"div","value":"div.base_main"},{"className":"searchresult_content","index":0,"prefix":">","tag":"div","value":"div.searchresult_content"},{"className":"cabinV2","index":0,"prefix":">","tag":"div","value":"div.cabinV2"},{"className":"","index":0,"prefix":">","tag":"div","value":"div"},{"className":"","index":2,"prefix":">","tag":"div","value":"div:nth-child(2)"},{"className":"","index":1,"prefix":">","tag":"div","value":"div:nth-child(1)"},{"index":0,"prefix":">","tag":"div","value":"div"},{"className":"flight_card_content","index":0,"prefix":">","tag":"div","value":"div.flight_card_content"},{"index":0,"prefix":">","tag":"div","value":"div"},{"className":"inb logo","index":0,"prefix":">","tag":"div","value":"div.inb.logo"}]},{"props":["text"],"selecors":[{"className":"base_main","index":0,"prefix":"","tag":"div","value":"div.base_main"},{"className":"searchresult_content","index":0,"prefix":">","tag":"div","value":"div.searchresult_content"},{"className":"cabinV2","index":0,"prefix":">","tag":"div","value":"div.cabinV2"},{"className":"","index":0,"prefix":">","tag":"div","value":"div"},{"className":"","index":2,"prefix":">","tag":"div","value":"div:nth-child(2)"},{"className":"","index":1,"prefix":">","tag":"div","value":"div:nth-child(1)"},{"index":0,"prefix":">","tag":"div","value":"div"},{"className":"flight_card_content","index":0,"prefix":">","tag":"div","value":"div.flight_card_content"},{"index":0,"prefix":">","tag":"div","value":"div"},{"className":"inb right","index":0,"prefix":">","tag":"div","value":"div.inb.right"},{"className":"time_box","index":0,"prefix":">","tag":"div","value":"div.time_box"},{"className":"time","index":0,"prefix":">","tag":"strong","value":"strong.time"}]},{"props":["text"],"selecors":[{"className":"base_main","index":0,"prefix":"","tag":"div","value":"div.base_main"},{"className":"searchresult_content","index":0,"prefix":">","tag":"div","value":"div.searchresult_content"},{"className":"cabinV2","index":0,"prefix":">","tag":"div","value":"div.cabinV2"},{"className":"","index":0,"prefix":">","tag":"div","value":"div"},{"className":"","index":2,"prefix":">","tag":"div","value":"div:nth-child(2)"},{"className":"","index":1,"prefix":">","tag":"div","value":"div:nth-child(1)"},{"index":0,"prefix":">","tag":"div","value":"div"},{"className":"flight_card_content","index":0,"prefix":">","tag":"div","value":"div.flight_card_content"},{"index":0,"prefix":">","tag":"div","value":"div"},{"className":"inb left","index":0,"prefix":">","tag":"div","value":"div.inb.left"},{"className":"time_box","index":0,"prefix":">","tag":"div","value":"div.time_box"},{"className":"time","index":0,"prefix":">","tag":"strong","value":"strong.time"}]},{"props":["text"],"selecors":[{"className":"base_main","index":0,"prefix":"","tag":"div","value":"div.base_main"},{"className":"searchresult_content","index":0,"prefix":">","tag":"div","value":"div.searchresult_content"},{"className":"cabinV2","index":0,"prefix":">","tag":"div","value":"div.cabinV2"},{"className":"","index":0,"prefix":">","tag":"div","value":"div"},{"className":"","index":2,"prefix":">","tag":"div","value":"div:nth-child(2)"},{"className":"","index":1,"prefix":">","tag":"div","value":"div:nth-child(1)"},{"index":0,"prefix":">","tag":"div","value":"div"},{"className":"flight_card_content","index":0,"prefix":">","tag":"div","value":"div.flight_card_content"},{"index":0,"prefix":">","tag":"div","value":"div"},{"index":0,"prefix":">","tag":"div","value":"div"},{"className":"","index":0,"prefix":">","tag":"div","value":"div"},{"className":"base_price02","index":0,"prefix":">","tag":"span","value":"span.base_price02"}]}],"ExtractTable":0},{"objNextLinkElement":"","iMaxNumberOfPage":1,"iMaxNumberOfResult":-1,"iDelayBetweenMS":1000,"bContinueOnError":False})
i=0
// 将抓取的数据中添加序号
For Each value In arrayData
	i=i+1
	arrRet = Unshift(value,i)
Next
// 构建数据表
objDatatable = Datatable.BuildDataTable(arrayData,["序号","航班号","出发时间","到达时间","价格"])

objDatatable = Datatable.GetDataTableByArray(objDatatable,True)
objExcelWorkBook = Excel.OpenExcel("C:\\Users\\Administrator\\Desktop\\初级uibot考试.xlsx",True,"Excel","","")
// 将抓取的数据写入excel
Excel.WriteRange(objExcelWorkBook,"Sheet1","A1",objDatatable,False)
Excel.Save(objExcelWorkBook)
sRet = Dialog.InputBox("请选择你要订的航班编号","UiBot","",False)
If (IsNumeric(CInt(sRet))) 
	Dialog.MsgBox("输入的数字不合法","UiBot","0","1",0) 
End If
sRet=CInt(sRet+1)
TracePrint(sRet)
arrayRet = Excel.ReadRange(objExcelWorkBook,"Sheet1","A"&sRet&":E"&sRet)
TracePrint(arrayRet)
s=""
For Each value In arrayRet[0]
    s=s&value&"\n"
    
Next
iRet = Dialog.MsgBox(s,"UiBot","0","1",0)
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python虫携程航班信息的编写可以分为以下几个步骤: 1. 确定爬取的网站和需要获取的信息,例如航班号、起降时间、价格等。 2. 使用Python中的requests库向网站发送请求,获取网页源代码。 3. 使用正则表达式或BeautifulSoup库解析网页源代码,提取所需信息。 4. 将提取的信息存储到本地文件或数据库中。 5. 可以使用selenium库模拟浏览器操作,实现多页爬取。 6. 可以使用数据分析和统计库对爬取的数据进行分析和可视化展示。 下面是一个简单的示例代码,用于爬取携程航班信息: ``` import requests from bs4 import BeautifulSoup url = 'http://flights.ctrip.com/itinerary/api/12808/products' params = { 'flightWay': 'Oneway', 'dcity': 'CTU', 'acity': 'SHA', 'date': '2021-12-01', } response = requests.get(url, params=params) soup = BeautifulSoup(response.text, 'html.parser') # 解析网页源代码,提取所需信息 flight_list = soup.find_all('div', class_='flight_item') for flight in flight_list: flight_no = flight.find('div', class_='flight_no').text.strip() departure_time = flight.find('div', class_='depart_time').text.strip() arrival_time = flight.find('div', class_='arrive_time').text.strip() price = flight.find('span', class_='base_price02').text.strip() # 将提取的信息存储到本地文件或数据库中 with open('flight_info.txt', 'a', encoding='utf-8') as f: f.write(flight_no + ',' + departure_time + ',' + arrival_time + ',' + price + '\n') ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值