![](/img/trans.png)
[英]file_get_contents('php://input') returns empty when sending thru url parameter
[英]Sending url parameters through file_get_contents returns nothig
我正在嘗試抓取一個網站,以獲取美國各縣的經度和緯度(因此有3306個,為什么我試圖通過代碼而不是手動進行操作)
我正在使用下面的代碼
function GetLatitude($countyName,$stateShortName){
//Create DOM from url
$page = file_get_contents("https://www.mapdevelopers.com/geocode_tool.php?$countyName,$stateShortName");
$doc = new DOMDocument();
$doc->loadHTML($page);
$node = $doc->getElementById("display_lat");
var_dump($doc);
}
GetLatitude("Guilford County","NC");
這不會返回任何內容,但是如果我更改url以不使用“ https://www.mapdevelopers.com/geocode_tool.php ”之類的參數,則可以看到$doc
現在包含一些信息,但這沒有用,因為我需要的值(緯度)取決於傳遞到url中的參數。
我該如何解決這個問題?
編輯:
基於對參數進行編碼的建議,我將代碼更改為此,現在文檔包含信息,但看起來好像是在忽略參數
<?
function GetLatitude($countyName,$stateShortName){
$countyName = urlencode($countyName);
$stateShortName = urlencode($stateShortName);
//Create DOM from url
$page = file_get_contents("https://www.mapdevelopers.com/geocode_tool.php?address=$countyName,$stateShortName");
$doc = new DOMDocument();
$doc->loadHTML($page);
$node = $doc->getElementById("display_lat");
var_dump($doc);
}
GetLatitude("Clarke County","AL");
?>
您的問題是頁面加載中不存在緯度信息等,而Java腳本將其放置在那里
您將很難嘗試使用JS運行網頁並從PHP抓取網頁而中間沒有任何東西,也許要用puppet或phantomjs之類的東西重試此項目,以便可以在真正的瀏覽器上運行腳本。
搜索頁面上有一個對https://www.mapdevelopers.com/data.php
的ajax請求。發送POST或GET請求將為您提供所需的響應
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.