私はDSL経由でページをスクラップする方法を定義できるWebスクレーパーを構築しようとしています。最初にツリー(バイナリツリーではない)がコンパイルされ、そのツリーがページをスクレープするために使用されます。ツリー構造を構築して奇妙な複製問題を取得する
問題は、3回呼び出されるフィールドを追加するコードブロックにもかかわらず、いくつかの奇妙な重複の問題が発生しています。何とかフィールドがすべてのノードに追加されています(そのうちの5つです)。どうやってこれが起こっているのか分からないので、スタックに頼むと思った。
重要なコードはhereです。ターミナル出力を.jsonに設定すると読みやすくなります。
編集:私はハッシュのobject_ids
で見てきた
、Node
オブジェクト内のコンテナハッシュ(@data
)が異なるIDを持っていますが、コンテナのハッシュ内部fields
ハッシュがすべて同じIDを共有しているように見えます更新すると、他のものを更新します。
私は最初のツリーノードに渡したinitハッシュを(今クローンして)複製しているので、なぜそれが起こっているのか分かりません。なぜ同じハッシュオブジェクトを参照しているのですか?
ええ、こんにちは、これを閉じるのに投票した人ですか?ヘルプセンターの範囲によると、これは非常にトピックです。たとえ問題が正確ではない場合でも(特定の問題がどこにあるか分かりません)、出力が含まれていて、それを絞っているので、トピックには間違いありません。ダウン。あなたがOPを正しく読むのに気を使うことができないならば、罰金をかけて結果として閉じないようにすると、あなたは馬鹿に見えます。 – Thermatix