問題タブ [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.

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

node.js - リクエスト使用時のレスポンスの空のボディ

次のコードがあります。

urls.txt ファイルからは、次の URL しかありません。

http://www.visir.is/section/?Template=rss&mime=xml

そのURLでwgetを使用すると、RSSフィードのように見える応答が返されますが、本文の上のコードでそれを行うと空です。誰かが私に理由とこれを修正する方法を説明できますか?

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

node.js - NodeJS は Web サイトからセッションを保存し、ブラウザのように動作してその Web サイトをナビゲートできますか?

NodeJS を使用して、イントラネット上のプリンター Web インターフェイスにアクセスするための小さなアプリケーションを作成しています。モジュールを使用しrequireて接続し、モジュールを使用しcheerioてデータを解析/表示します。

残念ながら、プリンターの 1 つはログイン フォームを使用します (html ヘッダー認証とは異なります)。関数を使用しrequest.postて正しいパラメーターを送信しています。これが成功した場合は、DOM で必要な情報を見つけますが、これは成功せcheerio.load(new url here)ず、「セッション タイムアウト」ページにリダイレクトされます。

最初の POST リクエストからセッションを維持し、必要な情報を含む新しいページをリクエストするときにそれを再利用する方法が必要です。

これは可能ですか?

0 投票する
3 に答える
2857 参照

javascript - node.js + Cheerio Scrape: ダウンロードする URL の配列を渡しますか?

まず、これまでに進行したコードを次に示します。

ご覧のとおり、followLinksは に連結されfollowUrlており、ダウンロードを通過させたい'url'ので、同じ CSS ルールを使用して各ページを効果的にスクレイピングし、対応するブロガーの多次元配列に追加します。 .

これについてどうすればいいですか?

0 投票する
3 に答える
20239 参照

jquery - node.jsでcheerioパッケージを使用してローカルのhtmlファイルをロードできますか?

ハードドライブに、jquery を使用してデータを抽出したい html ファイルがいくつかあります。これはチェリオを使用して行うことは可能ですか? チェリオにローカル パスを指定しようとしましたが、うまくいきません。私が持っていた1つのアイデアは、ノードでWebサーバーを作成し、htmlファイルから読み取り、サーバーを介してcheerioにパイプすることです-これは

0 投票する
2 に答える
1732 参照

javascript - Cheerio に jquery セレクターを追加できますか? (node.js)

私は Cheerio をいじっていましたが、jquery リファレンスで指定された特定のセレクター、特に「:odd」と「:even」をサポートしていないようです。jquery パッケージをプログラムにインポートしてこれらを使用する方法はありますか? それとも、cheerio コードに実装する必要があるものですか?

これが私のコードです:

jqueryをインポートしようとしたことがわかりますが、「ウィンドウが定義されていません」というエラーが発生せずにインポートできなかったので、明らかにノードの互換性の問題のようです。では、cheerio のセレクター ライブラリを増やす方法や、必要な jquery セレクター関数を持つ別のモジュールをインポートする方法はありますか?

0 投票する
2 に答える
447 参照

parsing - 選択方法

nodejsでcheerio.jsを使用して、XBRLからエントリのテキスト(この場合は「10-Q」)を取得しようとしています。行は以下のとおりです。

私はもう試した:

そして他のいくつかは役に立たなかった。私が見ることができる一意のIDやその他のものはありません。

サンプルファイル:

では、このテキストを抽出するにはどうすればよいでしょうか。ありがとう。


DOMDocument を使用する方が簡単です。

0 投票する
0 に答える
600 参照

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 はリソースを取得できますが、このスクリプトにエラーが表示されている行があることを確認しました。

0 投票する
3 に答える
12705 参照

jquery - チェリオを使用して子なしで親のテキストを取得する

Cheerio を使用して、div のコンテンツのみを抽出しようとしています。その div の子は使用しません。div.text() を使用すると、親と子のすべてのテキストが取得されます。HTML は次のとおりです。「5.25」という値が必要です。

以下のコードは現在、「購入価格 $5.25」を返します。

以下の HTML:

以下の関連する node.js CHEERIO コードの抜粋:

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

node.js - チェリオで即子を手に入れる方法

ひどい Web サイトを解析しようとしていますが、cheerio の使用について助けが必要です。

たとえば、htmlの本体のhtmlを取得したい場合は、

複数の要素をたどるにはどうすればよいですか?

(html > body > font > table > tbody > tr を取得したい場合はどうすればよいですか?)

!! これらすべての要素が直接の子であることに注意する必要があります。他の非直接の子をキャッチしたくありません (たとえば、テーブル > テーブルが存在する場合)。

0 投票する
2 に答える
1883 参照

node.js - Google 翻訳のスクレイピング

NodeJS と Cheerio ライブラリを使用して Google 翻訳をスクレイピングしたいと思います。

しかし、彼は翻訳ボックス (result_box) から必要なスパン要素を見つけることができません。Web サイトのソース コードでは、次のようになります。

したがって、Google がすべてのスパン要素を作成するまで 5 ~ 10 秒待つことができると思いますが、そうではないようです..

私を手伝ってくれますか?:)


解決:

Cheerio の代わりに http.get を使用します。

したがって、翻訳された結果文字列が得られます。使用される URL は、サーバーへの要求です。