ダウンロードしたいウェブサイトがありますが、何とかwget
(およびブラウザ自体)だけが機能しますが、他のものcurl
(またはnodejs https.get
)は機能せず失敗します。403 Forbidden
Wget出力(有効):
GET /path HTTP/1.1
Host: somesite.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
Accept: */*
Accept-Encoding: identity
Connection: Keep-Alive
カール出力(403):
> GET /path HTTP/2
> Host: somesite.com
> accept: */*
> user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
Firefox出力(有効):
GET /path HTTP/2
Host: somesite.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
DNT: 1
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site
NodeJS(403):
GET /path HTTP/1.1
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
Host: somesite.com
Connection: close
私は努力しました:
- すべてのツールで
Connection
に設定Keep-Alive
- Firefoxのすべてのヘッダーをツールにコピーする
編集、次の内容を含めることを忘れました。
- その間に既知のプロキシはありません。
- カールを使ってみましたが、
-c cookies
私が知っている限り、クッキーは関係ありません。
カールやnodejsで強制的に順序を付ける方法がわからないため、タイトルを並べ替えようとはしませんでした。
システム:万座路21.3.2
PS:すべてのツールは同じURLを使用します。