上網不再需要瀏覽器

上網不再需要瀏覽器

大綱

webbrower 模組

webbrower 模組是 Python 標準函式庫 (Standard Library) 提供了一個高級接口,允許向用戶顯示基於Web的文檔。在大多數情況下,只需從該模塊調用 open() 函數就可以了。使用方式如下:

import webbrower

範例 pythonWebCrawler-01.py : 利用 webbrower 模組,開啟 Yahoo奇摩股市 網站 https://tw.finance.yahoo.com/

# pythonWebCrawler-01.py
import webbrowser
webbrowser.open('https://tw.finance.yahoo.com/')

執行結果

認識 Google Map

當我們使用 Google Map 輸入地名搜尋 "總統府",其網址如下,將之分為三段: 

  1. https://www.google.com.tw/maps/search/總統府/
  2. @25.0399465,121.5101456,17z/
  3. data=!3m1!4b1
當我們使用 Google Map 輸入地址搜尋 "台北市中山北路三段181號",其網址如下,將之分為三段: 
  1. https://www.google.com.tw/maps/place/10491台北市中山區中山北路三段181號/
  2. @25.0725778,121.5226581,17z/
  3. data=!3m1!4b1!4m5!3m4!1s0x3442a94e08833657:0x23676b93fd3ba327!8m2!3d25.0725778!4d121.5248468
經比對後,我們發現都有其相同涵義
  1. 區塊1 : https://www.google.com.tw/maps/place 或是 search/ + 後面加上地名或地址。
  2. 區塊2 : 為經緯度。
  3. 區塊3 : 是Google 追蹤紀錄瀏覽者的一些資訊。

用地址或地名查詢地圖的程式範例

經過測試以後,我們發現區塊1 : https://www.google.com.tw/maps/search/ + 後面加上地名或地址,都能準確地顯示出地圖。

範例 pythonWebCrawler-02.py : 用地址或地名查詢地圖的程式。

# pythonWebCrawler-02.py
import webbrowser

addressPlace = input("請輸入地址 或地名 : ")
webbrowser.open('http://www.google.com.tw/maps/search/' + addressPlace)

執行結果

請輸入地址 或地名 : 陽明山國家公園

由經緯度算出兩地之間的距離

計算經緯度之間的距離方法如下:

計算地球上經緯度之間的距離 d,已知地球上兩點的 (經度,緯度) :  (X1,Y1), (X2,Y2) ,其中 X1,X2 為經度, Y1、Y2 為緯度。地球半徑為 R=6371 km,則兩點距離 d : 

d = R * arcos[ cos(Y1)*cos(Y2)*cos(X1-X2)+sin(Y1)*sin(Y2) ]

由於 Python 的三角函數皆是弧度(radians) ,因此我們需要 math.radian() 函數將角度轉為弧度。

經度座標介於 -180 ~ 180 之間,緯度座標介於 -90 ~ 90 之間,座標標示方式為小括號 (緯度,經度)。例如 陽明山國家公園 座標即為 : (25.1817878,121.5486188)

範例 pythonWebCrawler-03.py : 計算台北車站到陽明山國家公園的距離

# pythonWebCrawler-03.py
import math

r = 6371                    # 地球半徑
x1, y1 = 25.1817, 121.5486  # 陽明山國家公園經緯度
x2, y2 = 25.0452, 121.5168  # 台北車站經緯度

d = 6371*math.acos(math.sin(math.radians(x1))*math.sin(math.radians(x2))+
                   math.cos(math.radians(x1))*math.cos(math.radians(x2))*
                   math.cos(math.radians(y1-y2)))
print("台北車站到陽明山國家公園的距離 = ", d)

執行結果

台北車站到陽明山國家公園的距離 = 15.51212635800623


參考資料

特色、摘要,Feature、Summary:

關鍵字、標籤,Keyword、Tag:

  • Web-Crawler,Data-Mining,Data-Science,

留言

這個網誌中的熱門文章

Ubuntu 常用指令、分類與簡介

網路設定必要參數IP、netmask(遮罩)、Gateway(閘道)、DNS

iptables的觀念與使用

了解、分析登錄檔 - log

Python 與SQLite 資料庫

Blogger文章排版範本

Pandas 模組

如何撰寫Shell Script

查詢指令或設定 -Linux 線上手冊 - man

網路相關之指令