为了创建一个用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
- 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[class=priceMarketData]', 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将返回从网页中爬取的价格数据。
|