2016-12-06 3 views
1

simple_html_dom()でウェブページのコンテンツを取得しようとしていますが、403 Forbiddenが表示されます。
ブラウザを使用しようとしているときにアクセスできます。ウェブサイトのコンテンツを取得しようとしたときに禁止されたエラー

$target_url ='http://<URL>'; 
$html = new simple_html_dom(); 
$html->load_file($target_url); 

私はGuzzel Packageを使用しようとしていますが、私は再びこのエラーが発生します。

$client = new \GuzzleHttp\Client(); 
$result = $client->request('GET', 'http://<URL>'); 
dd($result->getBody()); 

どうすればよいですか?

+0

は私Laravelコードの一部である、 'dd'はlaravelの進歩' var_dump'は次のとおりです。https://laravel.com/docs/ 5.3/helpers#method-dd – MajAfy

+0

'403禁止されている 'とは、「サーバが要求を理解しましたが、許可を拒否しました」という意味です。 'http:// 'が提供するドキュメントを読んでください。通常は、ある種のaccess_tokenが必要です。 – Federkun

+0

ありがとう@Federkun、しかし、私はに私のブラウザからアクセスしているので、リクエストのために私のPHPコードにいくつかのパラメータを追加すべきだと思いますか? – MajAfy

答えて

1

問題に基づいて、問題が何であるかを言うのは難しいです。しかし、いくつかの可能性があります。

ほとんどのオプションは、いくつかのヘッダーを設定する必要があることです。一部のWebサイトはブラウザからの接続ではないため、ブラウザをエミュレートして結果を確認することができます。

もう1つの可能性は(@federkunで述べたように)一部のクッキーデータまたは基本アクセス認証を設定する必要があることです。

幅は、あなたがこのようにヘッダを設定することができがつがつ食う:この@Federkun

$client->request('GET', '/foo.js', [ 
    'headers'  => ['Accept-Encoding' => 'gzip'], 
    'decode_content' => false 
]); 
+0

ありがとうございますが、この解決策は私の問題を解決することはできません、私はデフォルトのヘッダーが必要です、私は ''はDDoS攻撃のcloudeflare DNS保護を使用すると思います – MajAfy

+0

この投稿を見たいかもしれません:http://stackoverflow.com/questions/11886711/ curl-cant-fetch-rss-from-cloudflareのためのウェブサイトからの –

関連する問題