基于python Geolines制作北京到全国各地的航线

1.爬取北京的航班

 1.1获取网页

 link ='http://flights.ctrip.com/schedule/bjs..html'
 r = requests.get(link, headers=headers, timeout=10)
 print('页面响应码状态:', r.status_code)

 1.2 解析页面

基于python Geolines制作北京到全国各地的航线_第1张图片

soup = BeautifulSoup(r.text, 'lxml')
line_titles = soup.find_all('div', class_='m')

1.3处理数据

      处理前:

          爬到的数据是这样的:

                              北京-阿拉善左旗    
	                      北京-阿尔山
	                      北京-阿克苏北京-安顺
                              北京-鞍山
                      
 pattern=re.compile(r'[\u4e00-\u9fa5]+')#匹配汉字方式
 m=pattern.findall(line_titles)

       提取里面的汉字信息:
   

   ['北京', '阿拉善左旗', '北京', '阿尔山', '北京', '阿克苏', '北京', '安顺', '北京', '鞍山', '北京', '包头', '北京', '白城', '北京', '毕节', '北京', '保山', '北京', '巴彦淖尔', '北京', '白山', '北京', '百色', '北京', '成都', '北京', '长春', '北京', '朝阳', '北京', '长沙', '北京', '重庆', '北京', '赤峰', '北京', '长治', '北京', '常州', '北京', '常德', '北京', '大庆', '北京', '大理市', '北京', '大连', '北京', '达州', '北京', '东营', '北京', '大同', '北京', '鄂尔多斯', '北京', '恩施', '北京', '二连浩特', '北京', '福州', '北京', '抚远', '北京', '阜阳', '北京', '贵阳', '北京', '桂林', '北京', '广州', '北京', '赣州', '北京', '广元', '北京', '固原', '北京', '海拉尔', '北京', '杭州', '北京', '海口', '北京', '淮安', '北京', '哈尔滨', '北京', '黑河', '北京', '和田市', '北京', '河池', '北京', '哈密市', '北京', '衡阳', '北京', '霍林郭勒', '北京', '呼和浩特', '北京', '汉中', '北京', '合肥', '北京', '惠州', '北京', '建三江', '北京', '加格达奇', '北京', '嘉峪关', '北京', '揭阳', '北京', '鸡西', '北京', '佳木斯', '北京', '景德镇', '北京', '济宁', '北京', '济南', '北京', '库尔勒', '北京', '昆明']

 

 

     切分数据(两个一组,一个是出发点,一个是目的地):


    film_type = m
    film_type_new = []
    for i in range(0, len(film_type), 2):
        film_type_new.append(film_type[i:i + 2])
    for i in film_type_new:
        print(i)

  切分之后是:

['北京', '阿拉善左旗']
['北京', '阿尔山']
['北京', '阿克苏']
['北京', '安顺']
['北京', '鞍山']
['北京', '包头']
['北京', '白城']
['北京', '毕节']
['北京', '保山']
['北京', '巴彦淖尔']
['北京', '白山']
['北京', '百色']
['北京', '成都']
['北京', '长春']
['北京', '朝阳']
['北京', '长沙']
['北京', '重庆']

 

 

 

 

 

 

 

 

2.利用Geoline制图

from pyecharts import GeoLines,Style


style = Style(
    title_top = "#fff",
    title_pos = "left",
    width = 1000,
    height = 800,
    background_color = "#404a59"

   )


data = [['北京', '阿拉善左旗'],
                    ['北京', '阿克苏'],
                    ['北京', '安顺'],
                    ['北京', '鞍山'],
                    ['北京', '包头'],
                    ['北京', '白城'],
                    ['北京', '毕节'],
                    ['北京', '保山'],
                    ['北京', '巴彦淖尔'],
                    ['北京', '白山'],
                    ['北京', '百色'],
                    ['北京', '成都'],
                    ['北京', '长春'],
                    ['北京', '朝阳'],
                    ['北京', '长沙'],
                    ['北京', '重庆'],
                    ['北京', '赤峰'],
                    ['北京', '长治'],
                    ['北京', '常州'],
                    ['北京', '常德'],
                    ['北京', '大庆'],
                    ['北京', '大理市'],
                    ['北京', '大连'],

                    ['北京', '东营'],
                    ['北京', '大同'],
                    ['北京', '鄂尔多斯'],
                    ['北京', '恩施'],
                    ['北京', '二连浩特'],
                    ['北京', '福州'],

                    ['北京', '阜阳'],
                    ['北京', '贵阳'],
                    ['北京', '桂林'],
                    ['北京', '广州'],
                    ['北京', '赣州'],
                    ['北京', '广元'],

                    ['北京', '海拉尔'],
                    ['北京', '杭州'],
                    ['北京', '海口'],
                    ['北京', '淮安'],
                    ['北京', '哈尔滨'],
                    ['北京', '黑河'],
                    ['北京', '和田市'],
                    ['北京', '河池'],
                    ['北京', '哈密市'],
                    ['北京', '衡阳'],
                    ['北京', '霍林郭勒'],
                    ['北京', '呼和浩特'],
                    ['北京', '汉中'],
                    ['北京', '合肥'],
                    ['北京', '惠州'],


                    ['北京', '嘉峪关'],
                    ['北京', '揭阳'],
                    ['北京', '鸡西'],
                    ['北京', '佳木斯'],
                    ['北京', '景德镇'],
                    ['北京', '济宁'],
                    ['北京', '济南'],
                    ['北京', '库尔勒'],
                    ['北京', '昆明'],
                    ['北京', '喀什市'],
                    ['北京', '克拉玛依'],

                    ['北京', '兰州'],
                    ['北京', '吕梁'],
                    ['北京', '拉萨'],
                    ['北京', '临汾'],

                    ['北京', '洛阳'],
                    ['北京', '六盘水'],
                    ['北京', '临沂'],
                    ['北京', '陇南'],
                    ['北京', '连云港'],
                    ['北京', '龙岩'],
                    ['北京', '梅州'],
                    ['北京', '满洲里'],
                    ['北京', '绵阳'],

                    ['北京', '宁波'],
                    ['北京', '南昌'],
                    ['北京', '南宁'],
                    ['北京', '南阳'],
                    ['北京', '南京'],
                    ['北京', '南充'],
                    ['北京', '南通'],
                    ['北京', '攀枝花'],

                    ['北京', '泉州'],
                    ['北京', '青岛'],

                    ['北京', '衢州'],
                    ['北京', '齐齐哈尔'],

                    ['北京', '日照'],
                    ['北京', '松原'],
                    ['北京', '深圳'],
                    ['北京', '三亚'],
                    ['北京', '上海'],
                    ['北京', '十堰'],
                    ['北京', '石河子'],
                    ['北京', '邵阳'],
                    ['北京', '沈阳'],
                    ['北京', '上饶'],
                    ['北京', '太原'],
                    ['北京', '通辽'],
                    ['北京', '天水'],
                    ['北京', '通化'],

                    ['北京', '吐鲁番'],
                    ['北京', '铜仁'],
                    ['北京', '天津'],

                    ['北京', '武夷山'],
                    ['北京', '乌海'],
                    ['北京', '乌兰浩特'],
                    ['北京', '乌鲁木齐'],
                    ['北京', '武汉'],

                    ['北京', '温州'],
                    ['北京', '无锡'],
                    ['北京', '威海'],
                    ['北京', '西昌'],
                    ['北京', '西宁'],
                    ['北京', '襄阳'],
                    ['北京', '厦门'],
                    ['北京', '西安'],

                    ['北京', '兴义'],
                    ['北京', '锡林浩特'],
                    ['北京', '银川'],
                    ['北京', '宜春'],
                    ['北京', '义乌'],
                    ['北京', '宜昌'],
                    ['北京', '扬州']
                  
                    ]



style_geo = style.add(
                is_label_show=True,#标签的有无
                line_curve=0.2,#曲线的弯曲度
                line_opacity=0.5,#航线的透明度
                legend_text_color="#eee",
                legend_pos="right",#示例的位置
                geo_effect_symbol="plane",
                geo_effect_symbolsize=10,#飞机大小
                label_color=['#ffa022', '#ffa022', '#46bee9'],
                label_pos="right",
                label_formatter="{b}",#地方标签的格式
                label_text_color="#eee",
)

geolines = GeoLines("GeoLines 示例", **style.init_style)#相当于设置背景
geolines.add("从北京出发", data,
                tooltip_formatter="{a} : {c}",**style_geo#设置航线的一些东西
                
             )

geolines.render()

 

 

 

 

 

3.效果

基于python Geolines制作北京到全国各地的航线_第2张图片

 

 

 

你可能感兴趣的:(基于python Geolines制作北京到全国各地的航线)