小屋創作

日誌2023-08-01 23:41

針對巴哈和噗浪的Python爬蟲─三、─(三)副程式─2.連線測試

作者:SystemCall

針對巴哈姆特和噗浪的 Python 爬蟲
Python crawler for Gamer and Plurk
Player_SystemCall

2023 7 4

巴哈姆特Gamer 噗浪Plurk
我把整個製作流程做成一份 PDF 文件囉,
不過除了程式碼和參考資料的連結可以複製外,
其他都不可以複製就是了。
註1:公布了把程式碼從純文本轉換成巴哈 BBcode 的線上工具的原文連結
註2:將上述線上工具套上了 CSS 的原文連結

三、Python 程式

(三)副程式

2. 連線測試

    • 程式碼
import time
import requests
from fake_useragent import UserAgent

def go_to_web(web_URL): #測試網路連結的狀態
    web_status = 0 #程式調整的網路狀態碼
    web_testtime = 0 #測試網路連線的次數
    while web_status != 200 and web_testtime != 3: #當網路狀態碼等於200或測試次數達到3次時,結束迴圈
        headers = {"User-Agent" : UserAgent().random} #設置http頭欄位,裡面夾帶瀏覽器識別標籤
        Go_to_web = requests.get(web_URL, headers = headers, timeout = 60, allow_redirects = False, stream = True, verify = False) #對web_URL夾帶headers發出GET請求,timeout為最長反應時間,allow_redirects為禁止重新定向,stream為強制解壓縮,verify為SSL憑證檢查功能       
        requests.packages.urllib3.disable_warnings() #關閉InsecureRequestWarning的顯示
        if Go_to_web.status_code != 200: #如果網路狀態碼不等於200
            time.sleep(30) #停頓30秒
            web_testtime = web_testtime + 1 #測試網路連線的次數加1
        else: #等於200
            web_status = Go_to_web.status_code
            web_testtime = web_testtime + 1 #測試網路連線的次數加1
        Go_to_web.close() #關閉對web_URL夾帶headers發出GET請求
    return web_status #回傳程式調整的網路狀態碼
  這段 go_to_web 副程式的組成有 3 行引入和 15 行的主文,執行一次可以測試一條完整的網址,如果連線正常,輸出網路狀態碼(HTTP Status Code200,如果連線異常,輸出非 200 的網路狀態碼或是直接回傳錯誤。這些程式碼執行起來太長太久且具有高度和重複的功能性,所以需要和適合封裝成副程式。
  這段程式只能接受一段完整的網址,如果輸入一段域名和 IP 位址,程式會直接報錯,因為我用 requests.get 發出 GET 請求時設置了禁止重新定向,即 allow_redirects=False,除此之外,也只能適用於在連線時不須傳送有效資料取得資訊回傳的網址,因為使用的網路請求為 GET,不是 POST。這段網路測試有 2 個停止的條件,網路狀態碼為 200 或是測試次數達 3 次,前者的狀況建立在任一次 200,後者為試了 3 次仍是非 200

[回首頁] [回作品列表] [回專案目錄]

1

0

LINE 分享

相關創作

阿松遇到的神祕BUG

巴哈姆特年度板主選拔 投票倒數!

【蘇鐵屬】琉球蘇鐵(Cycas revoluta) -2024/11/24更新

留言

開啟 APP

face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】