如何使用Python檢測網站是否有RWD

前言

在講 "如何使用Python檢測網站是否有RWD" 之前,我們先討論一下什麼是RWD,RWD是Responsive Web Design的縮寫,中文叫「響應式網站設計」,用意為讓網站可以在各種尺寸的裝置(電腦,平板,手機...)都可以正常瀏覽,所謂的正常瀏覽就是字體適中,且版面不會跑版,假如你的網站不支援RWD的話可能會導致使用手機的瀏覽者很難去瀏覽網站,另外假如網站有做SEO優化的話也要特別留意是否支援。

RWD設計原理

在RWD之前的網站假如要可以支援小尺寸的裝置,開發者通常會開發「兩套」網站,一套是給「電腦的」,一套是給「手機的」,所以有時候會看到網址是 m.xxx.com.tw 就是專門給手機等小裝置瀏覽的。
隨著科技的進步,開發者可以不用開發兩套網站了,只要透過 CSS3的設計 與 在 <head> tag 加上 <meta name="viewport" content="width=device-width, initial-scale=1"> 就可以讓HTML在不同螢幕寬度時進行變化。

如何使用Python檢測網站是否有RWD

我們很難透過Python去分析網站的CSS設計得是否有符合RWD,但是有一個很簡單的方法可以進行判斷這個網站有沒有響應式,就是檢查這個網站的 <head> tag 內有沒有 <meta name="viewport" content="width=device-width, initial-scale=1">,下面直接使用Python檢測網站是否有RWD。
1. 引入python的套件,requests與BeautifulSoup,requests用來對網站發出Get請求來取得網站原始碼,再用BeautifulSoup對原始碼進行解析

import requests

from bs4 import BeautifulSoup

2. 設計一個function用來偵測 參數url 的網站是否有要尋找的meta標籤

def is_rwd(url):

  

  #使用get呼叫網址

  res = requests.get(url)

 

  #使用BeautifulSoup開始解析原始碼

  sp = BeautifulSoup(res.text, 'lxml')

 

  #尋找meta標籤且name是viewport的

  meta_viewport_tag = sp.find('meta', {'name':'viewport'})

 

  print(url, end=' ')

 

  #判斷是否有尋找到meta viewport tag

  if meta_viewport_tag:

    print('有Rwd')

  else:

    print('無Rwd')

3. 呼叫我們剛剛寫好的 is_rwd function 進行判斷是否有rwd

is_rwd('https://blog.getmoney.tw/')

完整的程式碼可以至 Colab
其他更多精彩的分享

生活攻略站長

我是 Hank!,我是網站工程師,也是一位生活玩家,這是我的部落格,分享 生活知識、旅遊紀錄、開箱心得、網站架設筆記


My name is Hank, this blog shares Knowledge of life, Travel records and Website setup notes, hope you will like it