admin 发表于 2024-1-26 21:12:28

用php写一个爬取http://pfsc.agri.cn/#/priceMarket这个网页价格数据的接口


为了创建一个用PHP编写的接口来爬取网页上的价格数据,你需要使用PHP的爬虫库来获取页面内容并解析HTML。在这个例子中,我将使用PHP的Guzzle库来进行HTTP请求,并使用PHP的Simple HTML DOM Parser来解析HTML。首先,你需要确保安装了Guzzle和Simple HTML DOM Parser库。你可以通过Composer来安装它们:composer require guzzlehttp/guzzle
composer require sunra/php-simple-html-dom-parser
接下来,你可以编写一个PHP脚本来爬取 http://pfsc.agri.cn/#/priceMarket 页面的价格数据。下面是一个示例代码:

代码:
<?php

require 'vendor/autoload.php';

use GuzzleHttp\Client;
use Sunra\PhpSimple\HtmlDomParser;

// 创建一个 Guzzle HTTP 客户端
$client = new Client();

// 发送请求并获取页面内容
$response = $client->request('GET', 'http://pfsc.agri.cn/#/priceMarket');
$html = (string)$response->getBody();

// 用 Simple HTML DOM 解析 HTML
$dom = HtmlDomParser::str_get_html($html);

// 获取价格数据的容器元素
$priceContainer = $dom->find('div', 0);

// 初始化一个数组来存储价格数据
$priceData = [];

// 遍历价格数据容器元素,获取价格数据
foreach ($priceContainer->find('tr') as $row) {
    $rowData = [];
    foreach ($row->find('td') as $cell) {
      $rowData[] = $cell->plaintext;
    }
    $priceData[] = $rowData;
}

// 输出价格数据
header('Content-Type: application/json');
echo json_encode($priceData, JSON_PRETTY_PRINT);
这个脚本首先使用Guzzle库发送GET请求来获取页面内容。然后,它使用Simple HTML DOM Parser来解析HTML。在解析后,它定位到价格数据的容器元素,并遍历表格行和单元格来提取数据。最后,它以JSON格式输出价格数据。你可以将这段代码保存为 crawl_prices.php 文件,并通过Web服务器运行它。访问这个脚本的URL将返回从网页中爬取的价格数据。
页: [1]
查看完整版本: 用php写一个爬取http://pfsc.agri.cn/#/priceMarket这个网页价格数据的接口