#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon Nov 5 20:55:36 2018
@author: suwako
"""
import requests
import re
def runfetch(url):
session=requests.Session()
req1=session.get(url) # Get the source code
text=req1.text.split('\n')
# Parse the HTML source code
text=['\n'.join(row.split('\n')[:row.split('\n').index(""):]) for row in '\n'.join(text[text.index('
ANNEXES
ANNEXE I
'):text.index('Annexe
'):]).split('')[2::]]
diclist=[]
for row in text:
cols=[text.split('\n')[2][5::] if len(text.split('\n'))==3 else "" for text in row.split("", "\n", diclist[index][element]) # Replace
,
and
by \n
# Make a the area
for area in diclist:
# Case insensitive
area["zone"] = area["zone"].lower()
if "polygones" in area["zone"]:
lst = []
tmp = re.compile("zone . : .*").split(area["zone"]) # List of polygons
for polygon in tmp:
lst.append(re.findall(".{0,35} ?:? ?.? ?: ?(\d{1,3}° \d{2}' \d{2},?\d{0,2}(?:\"|”) .) ?\/ ?(\d{1,3}° \d{2}' \d{2},?\d{0,2}(?:\"|”) .)", area["zone"]))
area["zone"] = lst
del lst
del tmp
# Polygons
elif "polygone" in area["zone"]:
lst = []
lst.append(re.findall(".{0,35} ?:? ?.? ?: ?(\d{1,3}° \d{2}' \d{2},?\d{0,2}(?:\"|”|\'\') ?.) ?\/ ?(\d{1,3}° \d{2}' \d{2},?\d{0,2}(?:\"|”|\'\') ?.)", area["zone"]))
area["zone"] = lst
del lst
# Circles
elif "cercle" in area["zone"]:
lst = [()]
lst[0] = re.search(r"(.{6}) .{0,5}?(\d{1,3},?\d{0,2} ?.{1,2}) .{1,35} ?(\d{3}° \d{1,2}' \d{1,2}” .) ?\/ ?(\d{1,3}° \d{1,2}' \d{1,2}” .)", area["zone"], re.S).groups()
area["zone"] = lst
del lst
# Atolls
elif area["zone"].strip() == "atolls et eaux territoriales incluses":
area["zone"] = [("cercle", "35KM", "138° 54' 8,01\"", "21° 49' 44,64\""), ("cercle", "27KM", "138° 44' 33.01\"", "22° 14' 7.38\"")]
# Print the dict (keep this code in the end of the file)
print("===== Dict =====")
for index, area in enumerate(diclist):
if index == 277:
print(f"\n-------------{index}----------------\n")
for element in area:
print(f" {element}: {diclist[index][element]}")
print("\n")