問題タブ [request-promise]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2221 参照

javascript - request-promise を使用してサイトから価格を取得すると 403 エラーが発生する

request-promise を使用して、Asos.com から商品の価格を取得しようとしています。以下のコードを実行しようとすると、403 エラーが発生します。スクレイピングしようとしている URL が公開されているにもかかわらず、このエラーが発生する可能性はありますか? キーは必要ありませんか?

http://www.asos.com/api/product/catalogue/v2/stockprice?productIds=10000496¤cy=SEK&keyStoreDataversion=7jhdf34h-6&store=ROE

一部のサイトが ToS でスクレイピングに反対していることは知っていますが、これを間違って実行しているだけでなく、実際にサイトによってブロックされているかどうかを確認したいだけです.

0 投票する
1 に答える
488 参照

javascript - request-promise を使用して github URL を取得すると 404 が返される

request-promisegithub url を取得するために使用しようとしていますが、ブラウザーで動作しますが、node.js 経由で 404 が返されます。ヘッダーを正しく設定していないかどうかはわかりません。

これはほんの一例です。目標は、ドメインに関係なくリンクが壊れているかどうかをチェックするチェッカー サービスを構築することです。

0 投票する
1 に答える
3085 参照

javascript - CORSが原因でブラウザでHTTP認証リクエストが失敗し、ノードでOK

HTTP 基本認証を使用した GET リクエストがノードでは成功するが、ブラウザーでは失敗するという問題を診断しようとして立ち往生しています。この問題は、CORS の失敗として直接現れます (401 ページに Access-Control-Allow-Origin がありません)。

リクエストは次のようになります。

このリクエストが Chrome でどのように表示されるか:

ここに画像の説明を入力

ここで私にとって驚くべきこと:

  • メソッドは GET ではなく OPTIONS です。(私は明示的に要求しませんでした。)
  • 認証資格情報がヘッダーに含まれていません (設定していませんが)sendImmediately: false
  • 「暫定ヘッダーが表示されます」という警告。

私が知りたいこと:

  • これは予想される動作ですか?
  • そうでない場合、何が問題になっていますか?
  • はいの場合、何が問題になっていますか? :)

コマンドラインで同等のリクエストを実行すると、うまくいくようです:

ただし、URL で提供される資格情報がないと、応答に CORS ヘッダーがないことに気付きました。

それは正しい振る舞いですか?

仮説

私は疑う:

  • リクエストは「単純なリクエスト」ではないため、ブラウザは OPTIONS 「プリフライト」リクエストを送信する必要があります。(これがリクエストライブラリなのか、ブラウザ自体がこれを行っているのかは完全には明らかではありません)
  • 資格情報が提供されていないため、サーバーは 401 を応答していますが、必要な CORS ヘッダーを追加していません。
  • CORS ヘッダーがないと、ブラウザは Request ライブラリが結果にアクセスできないようにするため、認証を完了できません。

よくわからないこと:

  • サーバーの構成が間違っていませんか?
  • リクエストは、OPTIONS プリフライト リクエストで資格情報を渡すことができませんか?
0 投票する
1 に答える
247 参照

node.js - CURL で Web サイトをフェッチできますが、Nodejs リクエストではフェッチできません

IMDB からページを取得しようとしていますが、奇妙な理由で、使用中にエラー 400 が表示されます。request-promise

しかし、CURL を使用している場合は、同じクエリが正常に機能します。

カール " https://www.imdb.com/title/tt6306064/mediaviewer/rm3146075904 "

私のnodejsコード:

私がこれまでに試したこと:

  • ユーザーエージェントの設定
  • キープアライブの設定
  • Cookie jar を有効にする