linux抓取網頁,簡單方法是直接通過 curl 或 wget 兩種命令。
curl 和 wget 命令,目前已經支援linux和windows平台,後續將介紹。
curl 和 wget支援協議
curl 支援 http,https,ftp,ftps,scp,telnet等網路協議,詳見手冊 man curl
wget支援 http,https,ftp網路協議,詳見手冊man wget
1、ubuntu平台
wget 命令安裝: sudo apt-get install wget (普通使用者登入,需輸入密碼; root賬戶登入,無需輸入密碼)
curl 命令安裝:
sudo apt-get install curl
(同 wget)
2、windows平台
curl download
curl 和 wget抓取例項
1、 url **方式抓取
這時,可能就需要多次嘗試傳送連線,請求伺服器的響應;如果多次仍無響應,則可以確認伺服器出問題了
(1)curl多次嘗試連線
注: --retry表示重試次數; --retry-delay表示兩次重試之間的時間間隔(秒為單位); --retry-max-time表示在此最大時間內只容許重試一次(一般與--retry-delay相同)
(2)wget多次嘗試連線
2、 proxy**方式抓取
兩個著名的免費****:
freeproxylists.net(全球數十個國家的免費**,每日都更新)
xroxy.com(通過設定埠型別、**型別、國家名稱進行篩選)
218.107.21.252:8080(ip為218.107.21.252;port為8080,中間以冒號「:」隔開,組成乙個套接字)
curl -x 218.107.21.252:8080 -o aaaaa 常見有80,8080,8086,8888,3128等,預設為80)
以ubuntu為例,在當前使用者目錄(cd ~),新建乙個wget配置檔案(.wgetrc),輸入**配置:
然後再輸入wget抓取網頁的命令:
其它命令引數用法,同url**方式,在此不再贅述
ftp協議、迭代子目錄等更多的curl 和 wget用法,可以man檢視幫助手冊
知識拓展:
在國內,由於某種原因一般難以直接訪問國外某些敏感**,需要通過 vpn 或 **伺服器才能訪問
如果校園網和教育網有ipv6,則可以通過sixxs.org免費**訪問facebook、twitter、六維空間等**
其實,除了vpn 和 ipv6+sixxs.org**方式外,普通使用者還是有其它途徑訪問到國外**
下面介紹兩個著名的免費****:
freeproxylists.net(全球數十個國家的免費**,每日都更新)
xroxy.com(通過設定埠型別、**型別、國家名稱進行篩選)
curl 專案例項
使用curl + freeproxylists.net免費**,實現了全球12國家google play遊戲排名的網頁抓取以及趨勢圖查詢(抓取網頁模組全部使用shell編寫,核心**約1000行)
遊戲排名趨勢圖請見我先前的部落格:jfreechart專案例項
curl抓取網頁操作
curl是利用 url語法在命令列方式下工作的開源檔案傳輸工具,他能夠從網際網路上獲得各種各樣的網路資源。簡單來說,curl 就是抓取頁面的公升級版。開啟php.ini 查詢curl模組有沒有開啟。extension php curl.dll 簡版 curl curl init 建立 curl 資源...
Linux 抓取網頁方式(curl wget)
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!linux抓取網頁,簡單方法是直接通過 curl 或 wget 兩種命令。curl 和 wget 命令,目前已經支援linux和windows平台,後續將介紹。curl 和 wget支援協議 curl 支援 http,https,ftp,ftps,...
CURL多執行緒抓取網頁
網上這類方法似乎太多了。但是總是有一些問題存在。對於多執行緒抓取,現在有如下幾種思路 1.用apache的多執行緒特性,讓php進行 多程序 操作,就像post本身一樣 2.用curl的curl multi庫 對於第一種,我還沒嘗試,因為這種製造的是偽多執行緒,也許效率會低很多,而且不好控制。第二種...