47

に簡単なcurlリクエストを送信しpinterest.comます。私がそれを行うとPHP、結果は表示されません。コマンドラインから試してみましたが、結果は表示されませんでした。次に、詳細モードを試してみましたが、次のcurlようになります。

curl 7.27.0 (i686-pc-linux-gnu) libcurl/7.27.0 OpenSSL/1.0.1c zlib/1.2.7 libidn/1.25 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smtp smtps telnet tftp 
Features: Debug GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP

検索しましたが、整理できませんでした。私は何を間違っていますか?

コマンドは次のとおりです。

curl -v pinterest.com
4

2 に答える 2

78

ヘッダーを確認してください: https からのみアクセスできます:

$ curl --dump-header - http://pinterest.com/
HTTP/1.1 302 FOUND
Accept-Ranges: bytes
Age: 0
Content-Type: text/html; charset=utf-8
Date: Thu, 18 Jul 2013 19:25:49 GMT
Etag: "d41d8cd98f00b204e9800998ecf8427e"
Location: https://pinterest.com/
Pinterest-Breed: CORGI
Pinterest-Generated-By: ngapp-b7f64694
Pinterest-Version: a8eef3c
Server: nginx/0.8.54
Set-Cookie: csrftoken=A2VQZGarr509JKxrJxiuW2MbrXNdHlUH; Domain=.pinterest.com; expires=Thu, 17-Jul-2014 19:25:49 GMT; Max-Age=31449600; Path=/
Set-Cookie: _pinterest_sess="eJwz84isyvfJcilP1S4szHY20A6MKitJKwwPdi+2tY8vycxNtfUN8TX2c3E19gsJNfAPtLVVK04tLs5MsfXMcjTxq/KsAGJj3/CgHL+QoGzfrLCMSKNAIz93X+PIrHQTIF0eFe6X4ZluawsAh3UjNA=="; Domain=.pinterest.com; expires=Sun, 13-Jul-2014 19:25:49 GMT; Max-Age=31103999; Path=/
Vary: Cookie
Via: 1.1 varnish
X-Varnish: 1991078486
Content-Length: 0
Connection: keep-alive

オプションを使用すると、-L次のページが表示されます。

$ curl -L http://pinterest.com/
<!DOCTYPE html>
<!--[if IE 7 ]><html lang="en" class="ie7 ielt9 ielt10 en"><![endif]-->
<!--[if IE 8 ]><html lang="en" class="ie8 ielt9 ielt10 en"><![endif]-->
<!--[if IE 9 ]><html lang="en" class="ie9 ielt10 en"><![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--><html lang="en" class=" en"><!--<![endif]-->

<head>
    <script>
[snip]

このリンクでは、PHP を使用した方法を以下に示します。

[数年後...] また、-V--version、 ではなく--verbose、小文字-vです。呼び出すcurl -Vと、バージョンが表示され、args が無視されるため、ページがそのように表示されることはありません。

于 2013-07-18T19:27:05.850 に答える
8

リダイレクトを行うターゲット サイトの URL に問題がある可能性があります。

デフォルトでは、リクエストを行った後に curl がリダイレクトを受け取ると、新しい URL へのリクエストは行われません。この例として、URL http://www.facebook.comを考えてみましょう。この URL を使用してリクエストを行うと、サーバーは HTTP 3XX リダイレクトをhttps://www.facebook.com/に送信します。以下を試すと、空の出力が得られます。

$ curl http://www.facebook.com $ cURL にこれらのリダイレクトをたどらせたい場合は、-L オプションを使用する必要があります。

$ curl -L http://www.facebook.com/

例として、pinterest.com で試すことができます。「curl pinterest.com」の出力を「curl -L pinterest.com」と比較します。

于 2020-05-22T21:38:16.900 に答える