You are currently viewing 用 Excel批次取得網址 URL的網頁標題(title)

用 Excel批次取得網址 URL的網頁標題(title)

用 Excel批次取得網址 URL的網頁標題(title) 1

偶然需要把大量的網址個別的網頁標題儲存起來,但 10個以內自己複製都還好,需要更大量就很累了。這時候發現可以用 Excel來完成!

準備工具:Excel、你的網址(https和 http分開)

如果你只是要先嘗試,你可以先使用下面的範例網址,這是我從 UDN聯合新聞網上面隨便抓的網址

https://udn.com/news/cate/6638
https://udn.com/news/cate/6639
https://udn.com/news/cate/6641
https://udn.com/news/cate/6640
https://udn.com/news/cate/7225
https://udn.com/news/cate/6643
https://udn.com/news/cate/6644
https://udn.com/news/cate/6645
https://udn.com/news/cate/7227
https://udn.com/news/cate/7226
https://udn.com/news/cate/6649

用 Excel批次取得網址 URL的網頁標題(title)步驟

1. 開啟 Excel工作表,將網址貼在 A1~A11的地方

用 Excel批次取得網址 URL的網頁標題(title) 2

2. 點選上方標籤的「開發人員」

如果你沒有開發人員,請按檔案 > 選項 > 自訂功能區 > 右邊的欄位把「開發人員」打勾 > 確定

用 Excel批次取得網址 URL的網頁標題(title) 3

3. 點選「Visual Basic」

4. 在開啟的 Visual Basic視窗中,左邊的欄位點兩下「工作表1」,此時中間會開啟一個輸入指令碼的視窗

用 Excel批次取得網址 URL的網頁標題(title) 4

5. 複製以下的指令碼,貼進去

Sub GetTitles()
Dim c As Range, url As String
For Each c In Range(“A1:A11“).Cells
url = Trim(c.Value)
If LCase(url) Like “https://*” Then
c.Offset(0, 1).Value = GetTitle(url)
End If
Next c
End Sub

Function GetTitle(sURL As String)
Dim title As String, res As String, pos1, pos2
Dim objHttp As Object
Set objHttp = CreateObject(“MSXML2.ServerXMLHTTP”)
objHttp.Open “GET”, sURL, False
objHttp.Send “”

res = objHttp.ResponseText
pos1 = InStr(1, UCase(res), “<TITLE>”)
pos2 = InStr(1, UCase(res), “</TITLE>”)

title = “<not found>”
If pos1 > 0 And pos2 > 0 Then
pos1 = pos1 + Len(“<TITLE>”)
title = Mid(res, pos1, pos2 – pos1)
End If
GetTitle = title
End Function

ps. 如果你貼上語法時發生 title = Mid這行錯誤,請把 pos2 – pos1 這裡的「-」改為半形。

6. 按一下工具列上的綠色「‣」執行,執行

用 Excel批次取得網址 URL的網頁標題(title) 5

7. 此時 B行就會開始填入這些網址的標題囉!如果你的網址數量很多,請等等 Excel完成工作。

用 Excel批次取得網址 URL的網頁標題(title) 1

這就是透過 Excel來大量自動化取得網址標題的方法啦!

指令碼備註

A1:A11 上面紅色的指令碼,這裡是指你的網址填在哪幾個欄位,如果你有 20個網址那就是 A1:A20

https://* 上面藍色的指令碼,如果你的網址不是 https開頭,請把 s拿掉變成 http://*

存檔備註

當你存檔的時候,會發現 Excel提示有巨集,需要另外儲存才能保存巨集的內容,因此檔案類型要選擇 Excel啟用巨集的活頁簿;如果你只是偶爾暫時使用,可以把指令碼儲存起來就好,不必儲存這個活頁簿。也提醒,從網路上隨意下載的 Excel檔案如果提示有巨集,要特別注意掃描檔案安全性,因為來路不明的 Excel可能會有惡意的巨集指令碼!

Sid

喜愛電腦資訊、歷史、古文明、宇宙、自然生態的主題。喜歡看卡通和科幻主題的電影,有長不大的心情。從事金融業相關工作,分享的技巧多來自工作上的各項應用實作。

This Post Has 12 Comments

  1. lilyan

    您好,我嘗試上方的程式碼
    會出現語法錯誤的訊息。
    在title = Mid(res, pos1, pos2 – pos1)這一行

    1. Sid

      謝謝你告訴我,我找到問題了,請把 – 換成半形的-

  2. Bob

    請問什麼情況下會出現
    我輸入的網址取出的標題都是

    1. 匿名訪客

      not found

  3. 匿名訪客

    你好 我測試過 自由時報的網址可以用
    但xx網站是顯示 The URL you requested has been blocked
    請問要怎麼改才能抓啊?
    謝謝

    1. Sid

      不太確定xx網站是什麼,但根據這個訊息是你的網址是被封鎖的,很可能是伺服器拒絕了你的請求
      如果瀏覽器可以瀏覽,但是無法透過這個方式取得
      那麼減少一次取得的數量後再試試看

  4. 匿名訪客

    xx網站是讀冊網路書店
    可是我測試的時候只放三個網址耶
    博客來 金石堂 誠品 標題都可以抓
    然後比價網站也有它的資料
    請問要怎麼改才行啊?
    這是海賊王105集的網址
    https://www.taaze.tw/products/11101006724.html
    請問可以幫我測試一下嗎?

    非常感謝大大回覆我的問題

    1. Sid

      稍加修改一下,在【Dim objHttp As Object】以下的三行修改為這行下面加上
      Set objHttp = CreateObject(“WinHttp.WinHttpRequest.5.1”)
      objHttp.Open “GET”, sURL, False
      objHttp.setRequestHeader “User-Agent”, “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.58”
      objHttp.Send “”

      就可以囉。

  5. 匿名訪客

    成功了 祝大大51連假快樂~

  6. 圓周率

    請問網址要放在B1,標題要顯示在A1該如何修改?
    另外標題有固定的頭尾,如標題是 AAA123123BBB,
    該如何刪掉頭尾的 AAA、BBB呢?
    謝謝

    1. Sid

      比較簡單一點是用 MID 這個函數來處理喔

發佈留言