function getMeta(varA, varB) { if (typeof varB !== 'undefined') { alert(varA + ' width ' + varB + ' height'); } else { var img = new Image(); img.src = varA; img.onload = function() { getMeta(this.width, this.height); } }}getMeta("http://snook.ca/files/mootools_83_snookca.png");
于項目要求,需要利用php做一個獲取遠程頁面html狀態碼的功能,用來判斷遠程頁面是否可以訪問,就類似那種HTML頁面狀態碼檢測工具一樣。整理了一下代碼,貼出來。有需要的可以拿去用哦。
php獲取遠程頁面的html狀態碼,有兩種方法。一種是用了php的內置函數 get_headers(),一種是用了 curl 方法。
方法一:
<?php $arr = get_headers('http://feiniaomy.com'); echo $arr[0]; echo '<br/>'; $arr1 = get_headers('http://www.feiniaomy.com'); echo $arr1[0]; echo '<br/>'; $arr2 = get_headers('https://www.feiniaomy.com'); echo $arr2[0]; ?>
輸出結果:
HTTP/1.1 301 Moved Permanently HTTP/1.1 301 Moved Permanently HTTP/1.1 200 OK
注:
由于測試網址(本博客url) HTTP 協議都301到了 HTTPS 協議的 www 二級域名上,所以前兩次會輸出html的301狀態碼,最后一次是直接請求的 HTTPS 協議的地址,直接返回 HTML 200的狀態碼。
方法二:
<?php $ch = curl_init('https://www.baidu.com'); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_exec($ch); $httpcode = curl_getinfo($ch,CURLINFO_HTTP_CODE); curl_close($ch); ?>
返回結果:
一些網站上經常看到一些好的圖片希望批量下載保存到本地,但是一個個右擊保存有顯的十分麻煩,這里可以通過python 來實現這樣一個簡單的爬蟲功能,把我們想要的代碼爬取到本地,功能有點類似我們之前學過的批處理。下面就看看如何使用python來實現這樣一個功能,主要分為三步,如下:
一. 獲取整個頁面數據
首先我們可以先獲取要下載圖片的整個頁面信息。
創建getjpg.py文件
說明:
Urllib 模塊提供了讀取web頁面數據的接口,我們可以像讀取本地文件一樣讀取www和ftp上的數據。
首先,我們定義了一個getHtml()函數;
urllib.urlopen()方法用于打開一個URL地址;
read()方法用于讀取URL上的數據;
向getHtml()函數傳遞一個網址,并把整個頁面下載下來。執行程序就會把整個網頁打印輸出。
二. 篩選頁面中想要的數據
Python 提供了非常強大的正則表達式,我們需要先要了解一點python 正則表達式的知識才行。
re模塊中一些重要的函數:
假如我們百度貼吧找到了幾張漂亮的壁紙,通過到前段查看工具。找到了圖片的地址,如:src="http://m.jungjaehyung.com/uploadfile/2024/0808/20240808043622171.jpg"
我們又創建了getImg()函數,用于在獲取的整個頁面中篩選需要的圖片連接。re模塊主要包含了正則表達式:
re.compile() 可以把正則表達式編譯成一個正則表達式對象.
re.findall() 方法讀取html 中包含 imgre(正則表達式)的數據。
運行腳本將得到整個頁面中包含圖片的URL地址。
三. 將頁面篩選的數據保存到本地
把篩選的圖片地址通過for循環遍歷并保存到本地,代碼如下:
這里的核心是用到了urllib.urlretrieve()方法,直接將遠程數據下載到本地。
通過一個for循環對獲取的圖片連接進行遍歷,為了使圖片的文件名看上去更規范,對其進行重命名,命名規則通過x變量加1。保存的位置默認為程序的存放目錄。
程序運行完成,將在目錄下看到下載到本地的文件。
效果如下:
*請認真填寫需求信息,我們會在24小時內與您取得聯系。