Python:2019数学建模数据抓取

2019数学建模 萧山机场航班数据爬取代码

#爬取萧山机场航班数据

import urllib.request
import re
import xlwt

#创建空列表以储存数据
hangban_list = []
arrive_list=[]
zong_list=[]

# 对网址发送请求,获取源代码
def getdata():
    for i in range(1, 41):
        url = 'http://www.hzairport.com/flight/arrive/p/{}.html'.format(i)  # 获取需要的大量URL
        html = urllib.request.urlopen(url).read().decode('utf-8')  # 获取源码
        # print(html)

        # 从源码找到数据(re正则表达式)
        re1 = re.compile('<div class="timetable_item clearfix">.*?<p>(.*?)</p>',re.S)
        re2=re.compile('<div class="timetable_item clearfix">.*?<div class="time fl">(.*?)</div>.*?<div class="end fr"><span>.*?</span></div>',re.S)
        re12=re.compile('<div class="timetable_item clearfix">.*?<p>(.*?)</p>.*?<div class="number fl">(.*?)</div>.*?<div class="company fl">(.*?)</div>.*?<div class="time fl">(.*?)</div>.*?<div class="end fr"><span>.*?</span></div>',re.S)
        hangban = re.findall(re1, html)
        arrive=re.findall(re2,html)
        zong=re.findall(re12,html)
        # print(page_list)
        #记录信息
        hangban_list.append(hangban)
        arrive_list.append(arrive)
        zong_list.append(zong)
    return zong_list

#打印子信息集
# print(hangban_list)
# print(arrive_list)
# print(zong_list)
# print(len(hangban_list),len(arrive_list),len(zong_list))

# 存到Excel中
def excel_write(items):
    newTable = 'test12020.xls'
    wb = xlwt.Workbook(encoding='utf-8')
    ws = wb.add_sheet('fana')
    headData = ['航班号','机型','航空公司','到达时间']
    for colnum in range(0, 4):
        ws.write(0, colnum, headData[colnum], xlwt.easyxf('font:bold on'))
    index = 1
    for j in range(0, len(items)):
        len_list=len(items[j])
        for m in range(0,len_list):
            for i in range(0, 4):
                ws.write(index, i, items[j][m][i])
            index +=1
    wb.save(newTable)

#调用运行
items = getdata()
excel_write(items)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金工校尉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值