使用file_get_content
抓取重定向链接时遇到了一些麻烦,我使用了以下代码:$link
有几个网址。
foreach ($link as $site) {
if (strpos($site, 'https://www.mecsumai.com/') === 0) {
$dom = getSiteContent($site);
$div = $dom->getElementsByTagName('iframe');
if ($div->length > 0) {
$iframeLink[] = $div[0]->getAttribute('src');
}
}
}
我在这里抓取了这样的iframe网址:
https://www.mecsumai.com/bkn-summary?bid=16078001&bg1=999999&bg2=dddddd&wdt=100%&aln=center
但是尝试使用file_get_content
输入此内容时。我无法获取页面的内容。因为它将重定向到此,所以当您尝试输入时:
https://www.mecsumai.com/bkn-summary/?bid=16078001&bg1=999999&bg2=dddddd&wdt=100%25&aln=center&newid=06078001
最后newid=line...
正在重定向部分。所以我尝试这个。
foreach($iframeLink as $results){
$opts = array('https' =>
array(
'follow_location' => 1,
)
);
$context = stream_context_create($opts);
$lastUrl[] = file_get_contents($results, false, $context);
}
print_r($lastUrl);
我没错,也得到了页面内容,但没有得到整个this页面。桌子还没来吗? 有解决的办法吗?
答案 0 :(得分:1)
我不确定file_get_contents
是否允许这种选项,但是您可以使用允许的卷曲。
这里是一个例子。
function curl_get_contents($url) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
$data = curl_exec($curl);
curl_close($curl);
return $data;
}