PHP爬蟲入門 簡單的登入抓取內容

2022-09-07 14:36:12 字數 1637 閱讀 2861

以上為背景```

----

### php 寫爬蟲 ###

說實話我也想用python的,畢竟人家招牌。無奈我python還停留在看語法的階段,實在太慚愧,鞭笞一下自己加油學習。這裡用php的curl庫進行頁面抓取。

同事使用的系統需要先登入,然後有很多自定義圖表。每個圖表有乙個`graph_id`,根據`graph_id`可以匯出某段時間的csv格式報表以及對應的圖形png。

#### 1. 登入cookie ####

可能做爬蟲遇到的第一關就是登入了,通常你要抓取的網頁需要先驗證登入使用者。我們知道通常使用者會話狀態都是通過`sessionid`來識別,而`sessionid`通過`cookie`儲存到客戶端。所以當你要先登入在抓取頁面的時候,先請求登入介面,獲取到`cookie`儲存到本地,後面抓取內容的時候每次帶上這個`cookie`檔案就可以了。儲存`cookie`的curl選項*`curlopt_cookiejar`*:

# 儲存cookie的**

$this->cookie_file = '/tmp/cookie.curl.tmp';

curl_setopt($ch, curlopt_cookiejar , $this->cookie_file);

然後頁面抓取的時候通過設定*`curlopt_cookiefile`*帶上這個cookie:

# 設定cookie的**

curl_setopt($ch, curlopt_cookiefile , $this->cookie_file);

#### 2. 頁面重定向 ####

解決了會話session的問題,第二的頭疼的就是`302`和`301`重定向了。重定向的頁面response一般沒有body部分,頭部大概長這樣:

那怎麼辦呢?仔細觀察頭部資訊可以發現裡面包含了重定向的目標頁面`location: ***...`。而curl可以通過`curl_getinfo($ch, curlinfo_http_code)`來獲取http狀態碼,到這裡似乎就很清楚接下來該幹嘛了。

// 獲取的curl結果

### 小結 ###

PHP的簡單登入操作

相對來講啊 這個登入後台就簡單一點,其實程式差不多,關鍵就是出現了幾點變化 第乙個還是關鍵的理清執行邏輯 1,拿到字段 使用者名稱 密碼 2,查詢使用者名稱存不存在 不存在的話返回提示,使用者名稱不存在 3,存在查詢密碼正不正確,不正確返回提示 密碼錯誤 4,使用者名稱密碼正確 跳轉到成功頁面 第二...

簡單的爬蟲入門,requests庫

網路爬蟲,可以認為是 模擬瀏覽器自動瀏覽網頁 99 都是 一段程式,乙個指令碼 自動批量採集我們需要的各種資源 文字 主要方法 requests.request 構造乙個請求,支撐一下各方法的基礎方法 requests.get 獲取html網頁的主要方法,對應於http中的get requests....

php實現簡單爬蟲的開發

有時候因為工作 自身的需求,我們都會去瀏覽不同 去獲取我們需要的資料,於是爬蟲應運而生,下面是我在開發乙個簡單爬蟲的經過與遇到的問題。按照個人習慣,我首先程式設計客棧要寫乙個介面,理清下思路。1 去不同 那麼我們需要乙個url輸入框。2 找特定關鍵字的文章。那麼我們需要乙個文章標題輸入框。3 獲取文...