第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在php中獲取包含外部API的網頁

如何在php中獲取包含外部API的網頁

PHP
縹緲止盈 2023-06-24 16:12:43
我有一個 php 腳本,可以加載此網頁以從其表中提取一些數(shù)據。以下方法無法獲取其表內容:使用 file_get_contents:$document -> file_get_contents("http://www.webpage.com/");print_r($document);使用卷曲:$document = curl_init('http://www.webpage.com/');curl_setopt($document, CURLOPT_RETURNTRANSFER, true);$html = curl_exec($document);print_r($html);使用loadHTMLFile:$document->loadHTMLFile('http://www.webpage.com/');print_r($document);我究竟做錯了什么?以及它們如何阻止某些內容加載?
查看完整描述

2 回答

?
叮當貓咪

TA貢獻1776條經驗 獲得超12個贊

這不是您可能想聽到的答案,但您描述的方法都不會像普通瀏覽器客戶端那樣評估 JavaScript 和其他瀏覽器資源。相反,每個方法僅檢索您指定的文件的內容。快速瀏覽一下您所定位的網站,可以清楚地看到該表是作為 AJAX 調用的結果填充的,而您嘗試過的任何方法都無法評估該結果。

您需要依賴具有此類模擬功能的庫或腳本;即Selenium webdriverlaravel/dusk的 PHP 綁定,或類似的東西。


查看完整回答
反對 回復 2023-06-24
?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

這就是我使用 php curl 從網頁中抓取數(shù)據的方法:


    // Defining the basic cURL function

    function curl($url) {

        $ch = curl_init();  // Initialising cURL

        curl_setopt($ch, CURLOPT_URL, $url);    // Setting cURL's URL option with the $url variable passed into the function

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // Setting cURL's option to return the webpage data

        $data = curl_exec($ch); // Executing the cURL request and assigning the returned data to the $data variable

        curl_close($ch);    // Closing cURL

        return $data;   // Returning the data from the function

    }



// Defining the basic scraping function

    function scrape_between($data, $start, $end){

        $data = stristr($data, $start); // Stripping all data from before $start

        $data = substr($data, strlen($start));  // Stripping $start

        $stop = stripos($data, $end);   // Getting the position of the $end of the data to scrape

        $data = substr($data, 0, $stop);    // Stripping all data from after and including the $end of the data to scrape

        return $data;   // Returning the scraped data from the function

    }



$target_url = "https://www.somesite.com";

                                


$scraped_website = curl($target_url);  


$data_set_1 = scrape_between($scraped_website, "%before%", "%after%");

$data_set_2 = scrape_between($scraped_website, "%before%", "%after%");

%before% 和 %after% 是始終顯示在網頁上您要抓取的數(shù)據之前和之后的數(shù)據??赡苁?div 標簽或一些其他 html 標簽,這些標簽對于您想要獲取的數(shù)據來說是唯一的。


查看完整回答
反對 回復 2023-06-24
?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

那么也許可以考慮使用curl 并模仿該網站正在使用的相同ajax 請求?當我搜索時,這就是我發(fā)現(xiàn)的: Mimicing an ajax call with Curl PHP


查看完整回答
反對 回復 2023-06-24
  • 2 回答
  • 0 關注
  • 181 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號