
Python調用墨跡天氣API實踐指南
在大多數情況下,運行您自己的無頭 Chrome 瀏覽器集群和代理池的成本很高。使用特殊服務在
云中呈現 Javascript 驅動的網頁,并返回靜態 HTML 更有意義。
我將為最近表現出濃厚興趣的PHP開發人員分享代碼。我們將生成調用?Web Scraping Service API?的簡單 PHP 腳本。要自動執行 HTML 抓取任務,請按照以下步驟操作:
需要 Dataflow Kit API 密鑰才能訪問 Dataflow Kit API。服務器。免費注冊后,您可以從用戶儀表板獲取它。一旦您注冊,我們將免費授予您 1000 個積分。
轉到?https://account.dataflowkit.com?并使用 Facebook/Google 登錄或使用您的電子郵件注冊。
單擊“登錄”按鈕以使用您的Facebook或Google帳戶進行注冊。或按“注冊”鏈接使用您的電子郵件進行注冊。
您將需要授權對 Dataflow Kit API 的請求。稍后我們會將其添加到我們的 PHP 腳本中。請在儀表板設置中找到它。
這里有一個依賴關系。在運行最終腳本之前,請按照?https://github.com/rmccue/Requests?中的安裝說明進行操作,并安裝上述 PHP 請求包。
3.1. 轉到?https://dataflowkit.com/html-scraping?。為 HTML Scraping API 代碼生成器指定一些參數以生成 PHP 腳本。
參數 | 描述 |
---|---|
api_key | API 密鑰用于通過 API 進行身份驗證 – 您可以在帳戶儀表板中找到它 |
網址 | 提供用于下載內容的 URL。 |
代理 | 選擇一個國家/地區,通過位于那里的代理將請求傳遞到目標網站。 |
渲染 Javascript | 將其設置為“是”以呈現 Javascript 動態網頁。對于靜態 HTML 網頁,請選擇“否”。默認為“是”。 |
等待延遲 | 為自定義延遲指定“等待延遲”參數(以秒為單位)。在初始頁面加載后,留出更多時間來呈現網站的某些元素有時會有所幫助。 |
行動 | 使用操作:輸入、單擊、等待、滾動,在渲染網頁時自動執行手動工作流。它們模擬現實世界中人類與頁面的交互。 |
根據指定的參數,您將獲得如下信息:
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
'Content-Type' => 'application/json'
);
$url = 'https://dbconvert.com/';
$data = '{"url":"' . $url . '","type": "chrome","waitDelay": 0.5}';
$response = Requests::post('https://api.dataflowkit.com/v1/fetch?api_key=API-KEY', $headers, $data);
var_dump($response->body);
?>
用于訪問 Dataflow Kit API 的 PHP 腳本。
3.2. 例如,將上述代碼保存為“dfk-api.php”
3.3. 現在添加在?https://account.dataflowkit.com/settings?找到的實際 API Key 來代替 API-KEY。它看起來像“ab5cc2a84f7efab1693e8fc72he5f7e844b1bf5cbad9ea33”。請參閱步驟 #1。
3.4. 就這樣。現在,您可以運行腳本并從任何網站獲取呈現的 HTML 內容。
構建和運行 docker 鏡像來運行腳本甚至更簡單。
FROM php:7.4-cli
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y git
RUN git clone git://github.com/rmccue/Requests.git
COPY . /usr/src/dfk-api
RUN mv Requests /usr/src/dfk-api
WORKDIR /usr/src/dfk-api
CMD [ "php", "./dfk-api.php" ]
Dockerfile的
按照以下步驟構建并運行調用Dataflow Kit HTML抓取API服務的PHP腳本:
docker build -t dfk-api-php .
4. 在新容器中運行命令
docker run -it --rm --name dfk-api-php dfk-api-php
隨意在?https://github.com/slotix/dfk-api-php?處分叉 Github 存儲庫并根據您的需求自定義代碼。
對服務器生成的純 HTML 網頁進行 Web 抓取很簡單。您可以使用“PHP Requests”庫來獲取 HTML 內容。
從動態生成的 Javascript 數據中抓取大量數據時,您可能會遇到以下問題:
同樣,您可以創建PHP腳本以將網頁保存為PDF或截取屏幕截圖。
顯然,在抓取網頁之后的下一步是從呈現的 HTML 中提取特定數據。根據網站的不同,它可能是一個單獨的 HTML 元素,如圖像、文本、鏈接?;蛘撸?,電子商務網站將頁面上的多個產品列為按某些模式分組的數據塊。
您可以使用專用頁面上提供的其他 PHP 代碼生成器來構建 PHP 腳本,以發出請求以抓取各種網站。
原文鏈接:https://dataflowkit.com/blog/php-api/