2016-12-18 7 views
0

私は単純なhtml domでkickasstorrentsを掻き集めようとしていますが、エラーが発生しており、まだ始まっていません。私はいくつかの簡単なhtmlチュートリアルに続き、私は自分のURLを設定し、カールを使用しています。次のようにシンプルなhtml domでキッカーソレンスを掻きしようとしています

コードは次のとおりです。

<?php 
require('inc/config.php'); 
include_once('inc/simple_html_dom.php'); 

function scrap_kat() { 

// initialize curl 
$html = 'http://katcr.to/new/'; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $html); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); 
$ip=rand(0,255).'.'.rand(0,255).'.'.rand(0,255).'.'.rand(0,255); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: $ip", "HTTP_X_FORWARDED_FOR: $ip")); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/".rand(3,5).".".rand(0,3)." (Windows NT ".rand(3,5).".".rand(0,2)."; rv:2.0.1) Gecko/20100101 Firefox/".rand(3,5).".0.1"); 
$html2 = curl_exec($ch); 
if($html2 === false) 
{ 
    echo 'Curl error: ' . curl_error($ch); 
} 
else 
{ 
    // create HTML DOM 
    $kat = file_get_contents($html); 
} 
curl_close($ch); 

// scripting starts 




// clean up memory 
$kat->clear(); 
unset($kat); 
// return information 
return $ret; 

} 
$ret = scrap_kat(); 
echo $ret; 
?> 

私は私が間違って何をしますかエラー

Fatal error: Call to a member function clear() on resource in C:\wamp64\www\index.php on line 36

を受けますか?おかげさまで

+0

私は、そのページ上のシンプルなhtml-domのチョークを確認できます。あなたは[これを代替品として試すことができます](https://github.com/monkeysuffrage/advanced_html_dom)。 – pguardiario

答えて

0

Simple_html_domがクラスで行うことができますscrap_kat()

機能に何の変化$retはありません。そのクラスには、関数呼び出し、クリア、またはSimple_html_dom_nodeクラスがあります。しかし、単純なHTML DOMでは、simple_html_domクラスを使用する必要があります。

@Hassaan、正しいです。 file_get_contentsはネイティブPHP関数ですので、simple_html_domクラスのオブジェクトを作成する必要があります。同様に、

$html = new simple_html_dom(); 

このコードを使用してください。

function scrap_kat() { 
$url = 'http://katcr.to/new/'; 
// $timeout= 120; 
# create object 
$html = new simple_html_dom(); 
#### CURL BLOCK #### 
$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, $url); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/".rand(3,5).".".rand(0,3)." (Windows NT ".rand(3,5).".".rand(0,2)."; rv:2.0.1) Gecko/20100101 Firefox/".rand(3,5).".0.1"); 
//curl_setopt($curl, CURLOPT_TIMEOUT, $timeout); 
$ip=rand(0,255).'.'.rand(0,255).'.'.rand(0,255).'.'.rand(0,255); 
curl_setopt($curl, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: $ip", "HTTP_X_FORWARDED_FOR: $ip")); 
$content = curl_exec($curl); 
curl_close($curl); 
# note the variable change. 
# load the curl string into the object. 
$html->load($content); 
//echo $ip; 
#### END CURL BLOCK #### 
print_r($html->find('a')); 
// clean up memory 
$html->clear(); 
unset($html); 
} 
scrap_kat(); 

これらのコードは、コード内で多くのエラーが発生しているため、これをどのように行うことができるかを教えています。説明が必要な場合は、この回答の下にコメントしてください。します。

0

file_get_contentsは、PHPの組み込み関数です。単純なHTML DOMのために、あなたはあなたの質問であなたのコードとして$ret;を戻ってきているのはなぜfile_get_html

$kat = file_get_html($html); 

$kat = file_get_contents($html); 

を交換して使用することができます。あなたはあなたが$kat代わりの$retを返さないunset($kat);

+0

私は別のアプローチを試みました。 –

+0

私は別のアプローチを試しました:http://pastebin.com/CD8M9eiFと参照してください...今すぐ取得:C:\ wamp64 \ www \ index.php:40:var_dump、何も通じません...アイデアは何ですか? –

関連する問題