在大多數情況下,運行您自己的無頭 Chrome 瀏覽器集群和代理池的成本很高。使用特殊服務在
云中呈現 Javascript 驅動的網頁,并返回靜態 HTML 更有意義。

如何使用PHP腳本抓取網站?

我將為最近表現出濃厚興趣的PHP開發人員分享代碼。我們將生成調用?Web Scraping Service API?的簡單 PHP 腳本。要自動執行 HTML 抓取任務,請按照以下步驟操作:

1. 獲取免費的 API 密鑰。

需要 Dataflow Kit API 密鑰才能訪問 Dataflow Kit API。服務器。免費注冊后,您可以從用戶儀表板獲取它。一旦您注冊,我們將免費授予您 1000 個積分。

轉到?https://account.dataflowkit.com?并使用 Facebook/Google 登錄或使用您的電子郵件注冊。

單擊“登錄”按鈕以使用您的Facebook或Google帳戶進行注冊。或按“注冊”鏈接使用您的電子郵件進行注冊。

您將需要授權對 Dataflow Kit API 的請求。稍后我們會將其添加到我們的 PHP 腳本中。請在儀表板設置中找到它。

2. 安裝 PHP 請求。

這里有一個依賴關系。在運行最終腳本之前,請按照?https://github.com/rmccue/Requests?中的安裝說明進行操作,并安裝上述 PHP 請求包。

3. 生成PHP腳本并向API發送請求。

3.1. 轉到?https://dataflowkit.com/html-scraping?。為 HTML Scraping API 代碼生成器指定一些參數以生成 PHP 腳本。

參數描述
api_keyAPI 密鑰用于通過 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 用戶注意事項。

構建和運行 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腳本:

  1. 打開文件dfk-api.php
  2. 將 API-KEY 與?https://account.dataflowkit.com/settings?中的實際 API 密鑰交換。在 https://dataflowkit.com 注冊后可以免費獲得
  3. 在終端中運行以下命令以構建 docker 鏡像。
docker build -t dfk-api-php .

4. 在新容器中運行命令

docker run -it --rm --name dfk-api-php dfk-api-php

用于訪問 Dataflow Kit API 的 PHP 代碼的 Github 存儲庫。

隨意在?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/

上一篇:

使用 Diffbot 的知識圖譜api分析您的總潛在市場 (TAM)

下一篇:

完整指南:如何使用python列出aws的所有文件
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費