問題タブ [cheerio]
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.
node.js - リクエスト使用時のレスポンスの空のボディ
次のコードがあります。
urls.txt ファイルからは、次の URL しかありません。
http://www.visir.is/section/?Template=rss&mime=xml
そのURLでwgetを使用すると、RSSフィードのように見える応答が返されますが、本文の上のコードでそれを行うと空です。誰かが私に理由とこれを修正する方法を説明できますか?
node.js - NodeJS は Web サイトからセッションを保存し、ブラウザのように動作してその Web サイトをナビゲートできますか?
NodeJS を使用して、イントラネット上のプリンター Web インターフェイスにアクセスするための小さなアプリケーションを作成しています。モジュールを使用しrequire
て接続し、モジュールを使用しcheerio
てデータを解析/表示します。
残念ながら、プリンターの 1 つはログイン フォームを使用します (html ヘッダー認証とは異なります)。関数を使用しrequest.post
て正しいパラメーターを送信しています。これが成功した場合は、DOM で必要な情報を見つけますが、これは成功せcheerio.load(new url here)
ず、「セッション タイムアウト」ページにリダイレクトされます。
最初の POST リクエストからセッションを維持し、必要な情報を含む新しいページをリクエストするときにそれを再利用する方法が必要です。
これは可能ですか?
javascript - node.js + Cheerio Scrape: ダウンロードする URL の配列を渡しますか?
まず、これまでに進行したコードを次に示します。
ご覧のとおり、followLinks
は に連結されfollowUrl
ており、ダウンロードを通過させたい'url'
ので、同じ CSS ルールを使用して各ページを効果的にスクレイピングし、対応するブロガーの多次元配列に追加します。 .
これについてどうすればいいですか?
jquery - node.jsでcheerioパッケージを使用してローカルのhtmlファイルをロードできますか?
ハードドライブに、jquery を使用してデータを抽出したい html ファイルがいくつかあります。これはチェリオを使用して行うことは可能ですか? チェリオにローカル パスを指定しようとしましたが、うまくいきません。私が持っていた1つのアイデアは、ノードでWebサーバーを作成し、htmlファイルから読み取り、サーバーを介してcheerioにパイプすることです-これは
javascript - Cheerio に jquery セレクターを追加できますか? (node.js)
私は Cheerio をいじっていましたが、jquery リファレンスで指定された特定のセレクター、特に「:odd」と「:even」をサポートしていないようです。jquery パッケージをプログラムにインポートしてこれらを使用する方法はありますか? それとも、cheerio コードに実装する必要があるものですか?
これが私のコードです:
jqueryをインポートしようとしたことがわかりますが、「ウィンドウが定義されていません」というエラーが発生せずにインポートできなかったので、明らかにノードの互換性の問題のようです。では、cheerio のセレクター ライブラリを増やす方法や、必要な jquery セレクター関数を持つ別のモジュールをインポートする方法はありますか?
javascript - Jsdom は結果を返した後、外部リソース スクリプト (ページ上のスクリプト) でエラーをスローします。
ページ スクリプトの 1 つに起因すると思われるエラーが表示されます。
次のコードからこのエラーが発生しています。
これstr
が以前に取得したhtmlです。印刷された結果、html の innerWidth および typeof getElementsByClassName を確認できます。関数。しかし、約20秒後に上記のエラーが発生し、アプリケーションがクラッシュし、Got ERROR...
上から印刷できなくなります。
私が持っている最初の質問は、最後のものを印刷した後もアプリケーションがまだ実行されているのはなぜですか。これは、window.close() が指定されるまでブラウザでスクリプトが実行され続けるのと同じように、jsdom が実行し続ける通常の動作ですか。
実際の問題は、どうすればこれを解決できるかです。このウィンドウ オブジェクトでいくつかのイベントをトリガーして操作したいのですが、クラッシュし続けます。
スクリプトの URL は少しわかりにくいです。
file://cdn.widgets.webengage.com/js/widget/webengage-min-v-3.0.js:1
これは、ページが次の URL を使用して ajax 呼び出しでこのスクリプト リソースを取得しているためです。
//cdn.widgets.webengage.com/js/widget/webengage-min-v-3.0.js:1
jsdom はリソースを取得できますが、このスクリプトにエラーが表示されている行があることを確認しました。
jquery - チェリオを使用して子なしで親のテキストを取得する
Cheerio を使用して、div のコンテンツのみを抽出しようとしています。その div の子は使用しません。div.text() を使用すると、親と子のすべてのテキストが取得されます。HTML は次のとおりです。「5.25」という値が必要です。
以下のコードは現在、「購入価格 $5.25」を返します。
以下の HTML:
以下の関連する node.js CHEERIO コードの抜粋:
node.js - チェリオで即子を手に入れる方法
ひどい Web サイトを解析しようとしていますが、cheerio の使用について助けが必要です。
たとえば、htmlの本体のhtmlを取得したい場合は、
複数の要素をたどるにはどうすればよいですか?
(html > body > font > table > tbody > tr を取得したい場合はどうすればよいですか?)
!! これらすべての要素が直接の子であることに注意する必要があります。他の非直接の子をキャッチしたくありません (たとえば、テーブル > テーブルが存在する場合)。
node.js - Google 翻訳のスクレイピング
NodeJS と Cheerio ライブラリを使用して Google 翻訳をスクレイピングしたいと思います。
しかし、彼は翻訳ボックス (result_box) から必要なスパン要素を見つけることができません。Web サイトのソース コードでは、次のようになります。
したがって、Google がすべてのスパン要素を作成するまで 5 ~ 10 秒待つことができると思いますが、そうではないようです..
私を手伝ってくれますか?:)
解決:
Cheerio の代わりに http.get を使用します。
したがって、翻訳された結果文字列が得られます。使用される URL は、サーバーへの要求です。