Webブラウザを使用してWebサイトを閲覧できます。ただし、カールを使用してGET要求を試みると中断されます。たとえば、コマンドがcurl -vL my_url
次のログに停止しました。
* Host $url:443 was resolved.
* IPv6: ***
* IPv4: ***
* Trying ***:443...
* Connected to $url (***) port 443
* ALPN: curl offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* CAfile: /etc/ssl/cert.pem
* CApath: none
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Unknown (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / [blank] / UNDEF
* ALPN: server accepted http/1.1
* Server certificate:
* subject: C=**; ST=***; L=***; O=***; CN=***
* start date: Nov 17 05:09:32 2023 GMT
* expire date: Nov 17 14:59:59 2024 GMT
* subjectAltName: host "***" matched cert's "***"
* issuer: C=**; O=***; CN=***
* SSL certificate verify ok.
* Certificate level 0: Public key type ? (2048/112 Bits/secBits), signed using sha256WithRSAEncryption
* Certificate level 1: Public key type ? (2048/112 Bits/secBits), signed using sha256WithRSAEncryption
* Certificate level 2: Public key type ? (2048/112 Bits/secBits), signed using sha256WithRSAEncryption
* using HTTP/1.x
> GET / HTTP/1.1
> Host: ***
> User-Agent: curl/8.6.0
> Accept: */*
>
* old SSL session ID is stale, removing
その理由は何ですか?申し訳ありません。ウェブサイトのアドレスを公開できません。上記の内容がある程度明らかになることを願っています。ブラウザにすべてのリクエストヘッダを追加しようとしましたが、動作は変わりませんでした。
DNS ルックアップには、次の情報が表示されます。
*** is an alias for ***.edgekey.net.
***.edgekey.net is an alias for ***.akamaiedge.net.
***.akamaiedge.net has address ***
***.akamaiedge.net has IPv6 address ***
***.akamaiedge.net has IPv6 address ***
編集:追加調査の結果、カールだけでなく、私が試したすべての非ブラウザクライアント(SSL証明書を取得するための郵便配達、カール、wget、openssl s_client)がタイムアウトしました。ページを取得するためにブラウザと同様に、カール/郵便配達と同じ要求ヘッダーを試してみましたが、成功しませんでした。
答え1
他の人が指摘したように、ウェブサイトのrobots.txtにこの内容があることを確認してください。
User-Agent: curl
Disallow: /
そこにいる場合、その特定のウェブサイトでカールを使用することはできません
それならこの仕事はできない。どの待つ
User-agent: *
Disallow: /
検索するには、URLの後に/ robots.txtと入力してください。example.com/robots.txt
答え2
次のヘッダーを追加してカール要求が機能するようにしました。これらはすべて必要であり、User-Agentヘッダーだけでは不十分です。
> User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:123.0) Gecko/20100101 Firefox/123.0
> Accept-Language: en-US,en;q=0.5
> Accept-Encoding: gzip, deflate, br
> Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
ブラウザ開発者コンソールの[ネットワーク]タブにあるリクエストヘッダーを見ると、これがわかります。
Acceptヘッダーは単にAccept: */*
。
答え3
私がフォローしているサイトにも同じ問題があります(だから私は最初にあなたに質問をしました。)。奇妙なことは、私がこのサイトをcurl
何年も問題なくフォロー(使用)してきたことです。しかし今、これが「問題」になりました!おそらくこれ傾向?
とにかく - あなたの質問を読んだ後、私に適した解決策を見つけました。lynx
-「コマンドライン」ブラウザ。lynx
オプションが多いので、読書man lynx
などに時間を投資することをお勧めします。私に役立つのは次のとおりです。
lynx -dump -accept_all_cookies 'https://wherever.com/viewtopic.php?t=abc123' > my-dump.txt