一、安裝speedtest-cli
speedtest-cli是一個用python編寫的輕量級Linux命令行工具,在Python2.4至3.4版本下均可運行。它基於Speedtest.net的基礎架構來測量網路的上/下行速率。安裝speedtest-cli很簡單——只需要下載其Python腳本文件。
[root@localhost temp]# wget https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py
[root@localhost temp]# chmod a+rx speedtest_cli.py
[root@localhost temp]# mv speedtest_cli.py /usr/local/bin/speedtest-cli
[root@localhost temp]# chown root:root /usr/local/bin/speedtest-cli
也可以在自己電腦上下載好 speedtest_cli.py 然後上傳到伺服器上。
二、使用speedtest-cli測試網速
使用speedtest-cli命令也很簡單,它不需要任何參數即可工作。
[root@localhost temp]# speedtest-cli
輸入這個命令後,它會自動發現離你最近的Speedtest.net伺服器(地理距離),然後列印出測試的網路上/下行速率。
[root@localhost temp]# speedtest-cli
Retrieving speedtest.net configuration…
Retrieving speedtest.net server list…
Testing from China Telecom (219.135.214.145)…
Selecting best server based on latency…
Hosted by CTM Internet Services (Macau) [106.48 km]: 55.974 ms
Testing download speed………………………………….
Download: 3.15 Mbit/s
Testing upload speed…………………………………………..
Upload: 0.58 Mbit/s
測試結果說明:上行為 0.58Mbit/s 下行為 3.15 Mbit/s
② Python爬蟲如何避免爬取網站訪問過於頻繁
一. 關於爬蟲
爬蟲,是一種按照一定的規則自動地抓取互聯網信息的程序。本質是利用程序獲取對我們有利的數據。
反爬蟲,從不是將爬蟲完全杜絕;而是想辦法將爬蟲的訪問量限制在一個可接納的范圍,不要讓它過於頻繁。
二. 提高爬蟲效率的方法
協程。採用協程,讓多個爬蟲一起工作,可以大幅度提高效率。
多進程。使用CPU的多個核,使用幾個核就能提高幾倍。
多線程。將任務分成多個,並發(交替)的執行。
分布式爬蟲。讓多個設備去跑同一個項目,效率也能大幅提升。
打包技術。可以將python文件打包成可執行的exe文件,讓其在後台執行即可。
其他。比如,使用網速好的網路等等。
三. 反爬蟲的措施
限制請求頭,即request header。解決方法:我們可以填寫user-agent聲明自己的身份,有時還要去填寫origin和referer聲明請求的來源。
限制登錄,即不登錄就不能訪問。解決方法:我們可以使用cookies和session的知識去模擬登錄。
復雜的交互,比如設置「驗證碼」來阻攔登錄。這就比較難做,解決方法1:我們用Selenium去手動輸入驗證碼;方法2:我們用一些圖像處理的庫自動識別驗證碼(tesserocr/pytesserart/pillow)。
ip限制。如果這個IP地址,爬取網站頻次太高,那麼伺服器就會暫時封掉來自這個IP地址的請求。 解決方法:使用time.sleep()來對爬蟲的速度進行限制,建立IP代理池或者使用IPIDEA避免IP被封禁。
③ linux測試網速的工具
1、fast
是Netflix提供的一項服務,它不僅可以通過命令行來使用,而且可以直接在Web端使用:fast.com,我們可以通過以下命令來安裝這個工具:
$ npm install --global fast-cli
不管是網頁端還是命令行,它都提供了最基本的網路下載測速。命令行下最簡單的使用方法如下:
$ fast
93 Mbps ↓
從以上結果可以看出,直接使用fast命令的話,將只返回網路下載速度。如果你也想獲取網路的上傳速度,則需要使用-u選項。
$ fast -u
⠧ 81 Mbps ↓ / 8.3 Mbps ↑
2、speedtest
是一個更加知名的工具。它是用Python寫成的,可以使用apt或pip命令來安裝。你可以在命令行下使用,也可以直接將其導入到你的 Python
項目,使用的時候,可以直接運行speedtest命令即可:
$ speedtest
Retrieving speedtest.net configuration...
Testing from Tencent cloud computing (140.143.139.14)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Henan CMCC 5G (Zhengzhou) [9.69 km]: 28.288 ms
Testing download
speed................................................................................
Download: 56.20 Mbit/s
Testing upload
speed......................................................................................................
Upload: 1.03 Mbit/s
從運行結果可以看出,speedtest命令將直接提供上傳/下載速率,測試的過程也是挺快的。你可以編寫一個腳本來調用這個命令,然後定期進行網路測試,並在結果保存在一個文件或資料庫,這樣你就可以實時跟蹤你的網路狀態。
3、iperf
是一個網路性能測試工具,它可以測試TCP和UDP帶寬質量,可以測量最大TCP帶寬,具有多種參數和UDP特性,可以報告帶寬,延遲抖動和數據包丟失。利用iperf這一特性,可以用來測試一些網路設備如路由器,防火牆,交換機等的性能。
這個工具不僅僅在Linux系統下可以用,在Mac和Windows系統同樣可以使用。
如果你想測試網路帶寬,則需要兩台電腦。這兩台電腦需要處於同樣的網路,一台作為服務機,另一台作為客戶機,並且二者必須都要安裝
iPerf,可以通過如下命令獲取伺服器的IP地址:
$ ip addr show | grep inet.*brd
inet 192.168.242.128/24 brd 192.168.242.255 scope global dynamic
noprefixroute ens33
之後,我們再在服務機上啟動iperf工具:
$ iperf -s
然後,我們就可以等待客戶機的接入了。客戶機可以使用以下命令來連上服務機:
$ iperf -c 192.168.242.128
通過幾秒鍾的測試,它就會返回網路傳輸速率及帶寬。