問題タブ [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 に答える
10250 参照

javascript - セレクターを使用した Node.js および Cheerio 解析テーブル

Node.js と Cheerio を使用して HTML テーブルを解析しようとしていますが、いくつかの結果が得られていますが、残念ながらデータが多すぎて、さらに解析して必要なデータのみを取得する方法がわかりません。

ここに私がこれまで行ってきた小さなコードがあります..

Chrome プラグインを使用してセレクターを見つけたところ、「.clickableRow td」が必要であることがわかりましたが、これをプラグインしようとしたすべての方法が機能していないようです。

もう少し明確にするために、html ソースは次のようになります -

それは理にかなっていますか?必要なアイテムは HTML の奥深くにあるため、そのレベルに到達する方法がわかりません。どんな助けでも大歓迎です!ありがとう!

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

javascript - Cheerioスクレイピングの構造化に問題がある

これは単なる基本的な構文かもしれないと思います。私は Java 出身で、Javascript は初めてです。たとえば、すべての例で $ を見ると頭が真っ白になります。

HTTP リクエスト (たくさんのドッグ ショーを含む) を解析するためのコードは、(リクエスト ライブラリを使用して) 次のようになります。

によって呼び出されます

ここまでは順調ですね。私が立ち往生しているのは、parseShow 関数の書き方です。私は何かに行きたいです

しかし、私はエラーが発生します:

スタック トレースを見ると、Cheerio が新しいものを作成しているように見えます。Cheerio パーサーを 2 番目の関数に渡すにはどうすればよいですか? 現在、パーサーはファイル内のグローバル変数です。

私はこれらのようなランダムなことをたくさん試しましたが、どちらも機能しません:

代わりに私がしなければならないのは、一連の嫌な、壊れやすいコードへのアクセスtableRow.children[1], tableRow.children[3]などです...(HTMLには /r/ns が作成されているため、多くの子は空白です)

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

html - Nodejs スクレイピング オプション

為替グラフ用のノードでスクレイピング エンジンを構築しようとしています。 :

他に使えるものはありますか?

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

javascript - サイト全体をスクレイピングする Node Cheerio

Node Cheerio を使用して、スクレイパーが指すホーム/最初のページだけでなく、サイト全体をスクレイピングした人はいますか?

現時点では、ターゲットページのみをスクレイピングする次のことを行っています。

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

javascript - スクレイピングされたコンテンツを (cheerio 経由で) Meteor に挿入する際に問題が発生する

具体的には、(Discover Meteor book を調べて作成した非常にシンプルなアプリを使用して)Hacker News から投稿をスクレイピングし、それらを Meteor Collection に挿入して、「New Posts」ページを更新して 20 ほどの新しい記事をスクレイピングしようとしています。ハッカーニュースのトップページ。

Meteor.call イベントに接続されたヘッダーにボタンがあります。

これにより、getHnArticles という名前の Meteor.methods 関数が (正常に) 呼び出されます。

その結果、Hacker News のトップ ランクの投稿が見事に挿入されました。しかし、それから他のどれも。

result_set という配列を console.log に送信すると、フロント ページが出力されます。

等々。素敵な大きな配列を取得します。

ここで何がうまくいかないのですか?Meteor Collections のコードがループするため、レコードの挿入が速すぎますか? それとも、Mongo の挿入の問題ですか?

ありがとう!私は Meteor を初めて使いましたが、気に入っています。しかし、私はまだ Meteor 内で非同期ノードを使用することに頭を悩ませています。

編集:MongoDBインスタンスにクエリを実行すると、トップリンクのみが挿入されていることを追加するのを忘れました。

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

jquery - スクレイピング時にチェリオのfindメソッドが見つからない

次のコードを使用しています

そして私の問題は、なぜ .each ループの 3 行目を

その行を使用すると、出力は空になりますが、ダウンロードされた xml ファイルの構造から、そうではないことがわかります。