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

如何使用PHP腳本抓取網(wǎng)站?

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

1. 獲取免費的 API 密鑰。

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

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

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

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

2. 安裝 PHP 請求。

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

3. 生成PHP腳本并向API發(fā)送請求。

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

參數(shù)描述
api_keyAPI 密鑰用于通過 API 進(jìn)行身份驗證 – 您可以在帳戶儀表板中找到它
網(wǎng)址提供用于下載內(nèi)容的 URL。
代理選擇一個國家/地區(qū),通過位于那里的代理將請求傳遞到目標(biāo)網(wǎng)站。
渲染 Javascript將其設(shè)置為“是”以呈現(xiàn) Javascript 動態(tài)網(wǎng)頁。對于靜態(tài) HTML 網(wǎng)頁,請選擇“否”。默認(rèn)為“是”。
等待延遲為自定義延遲指定“等待延遲”參數(shù)(以秒為單位)。在初始頁面加載后,留出更多時間來呈現(xiàn)網(wǎng)站的某些元素有時會有所幫助。
行動使用操作:輸入、單擊、等待、滾動,在渲染網(wǎng)頁時自動執(zhí)行手動工作流。它們模擬現(xiàn)實世界中人類與頁面的交互。

根據(jù)指定的參數(shù),您將獲得如下信息:

<?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. 現(xiàn)在添加在?https://account.dataflowkit.com/settings?找到的實際 API Key 來代替 API-KEY。它看起來像“ab5cc2a84f7efab1693e8fc72he5f7e844b1bf5cbad9ea33”。請參閱步驟 #1。

3.4. 就這樣。現(xiàn)在,您可以運行腳本并從任何網(wǎng)站獲取呈現(xiàn)的 HTML 內(nèi)容。

Docker 用戶注意事項。

構(gòu)建和運行 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的

按照以下步驟構(gòu)建并運行調(diào)用Dataflow Kit HTML抓取API服務(wù)的PHP腳本:

  1. 打開文件dfk-api.php
  2. 將 API-KEY 與?https://account.dataflowkit.com/settings?中的實際 API 密鑰交換。在 https://dataflowkit.com 注冊后可以免費獲得
  3. 在終端中運行以下命令以構(gòu)建 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 存儲庫并根據(jù)您的需求自定義代碼。

結(jié)論

對服務(wù)器生成的純 HTML 網(wǎng)頁進(jìn)行 Web 抓取很簡單。您可以使用“PHP Requests”庫來獲取 HTML 內(nèi)容。

從動態(tài)生成的 Javascript 數(shù)據(jù)中抓取大量數(shù)據(jù)時,您可能會遇到以下問題:

同樣,您可以創(chuàng)建PHP腳本以將網(wǎng)頁保存為PDF或截取屏幕截圖。

顯然,在抓取網(wǎng)頁之后的下一步是從呈現(xiàn)的 HTML 中提取特定數(shù)據(jù)。根據(jù)網(wǎng)站的不同,它可能是一個單獨的 HTML 元素,如圖像、文本、鏈接。或者,例如,電子商務(wù)網(wǎng)站將頁面上的多個產(chǎn)品列為按某些模式分組的數(shù)據(jù)塊

您可以使用專用頁面上提供的其他 PHP 代碼生成器來構(gòu)建 PHP 腳本,以發(fā)出請求以抓取各種網(wǎng)站。

原文鏈接:https://dataflowkit.com/blog/php-api/

上一篇:

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

下一篇:

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

我們有何不同?

API服務(wù)商零注冊

多API并行試用

數(shù)據(jù)驅(qū)動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

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

#AI深度推理大模型API

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

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