मैं नोकोगिरी का उपयोग करके निम्नलिखित ब्लॉक की खोज कैसे कर सकता हूं:
<div id="live_list_cat_16" class="football-block sport-block" style="display:block;">
</div>
-1
KOB
8 जिंदा 2017, 20:22
1
कृपया "कैसे पूछें" और meta.stackoverflow.com/q/261592/128421
– the Tin Man
9 जिंदा 2017, 23:50
2 जवाब
ये कोशिश करें
doc.search('div#foo.bar')
यह कैसे काम करता है?
search
औरat
विधि दोनों ही CSS प्रश्नों को स्वीकार करते हैंdiv#foo
आईडी के साथ एक div ढूँढता हैfoo
div.bar
कक्षा के साथ एक div ढूँढता हैbar
0
akuhn
8 जिंदा 2017, 21:12
मैंने यह कोशिश की है और यह काम नहीं करता है। किसी कारण से, जब मैं पृष्ठ को खोजता हूं, तो ऐसा नहीं लगता कि कुछ भी आंतरिक ब्लॉकों की एक निश्चित 'गहराई' से गुजरा है। यहां HTML का एक अंश दिया गया है। अगर मैं ऊपर और ऊपर
– .in-play-odds
तक किसी भी वर्ग की खोज करता हूं, तो यह उसे वापस कर देता है। हालांकि, यह .in-play-odds
के लिए कोई उपवर्ग नहीं ढूंढ सकता है और यदि मैं .in-play-odds
खोजता हूं, तो यह <div id="live_list_container" class="in-play-odds"> </div>
के रूप में एक खाली ब्लॉक देता है। कोई विचार है कि यह इस ब्लॉक के भीतर क्यों नहीं खोज सकता है?
KOB
9 जिंदा 2017, 00:21
हो सकता है कि ये
– div
तत्व पेज लोड होने के बाद जावास्क्रिप्ट के साथ गतिशील रूप से बनाए गए हों। क्या आपने जांच की है कि वे html स्ट्रिंग में मौजूद हैं जो आपको नोकोगिरी को देते हैं?
akuhn
9 जिंदा 2017, 00:30
मुझे लगता है कि आप उनके बारे में सही हो सकते हैं कि उन्हें गतिशील रूप से जोड़ा जा रहा है। अगर ऐसा है, तो क्या नोकोगिरी का उपयोग करके उन्हें परिमार्जन करने का कोई तरीका नहीं है?
– KOB
9 जिंदा 2017, 00:36
शायद शायद नहीं। शायद एक एपीआई कॉल है जो डेटा को JSON या HTML के रूप में प्राप्त करती है, देव उपकरण में नेटवर्क टैब से जांचें ...
– akuhn
9 जिंदा 2017, 00:38
आप #some_id
को CSS चयनकर्ता के रूप में उपयोग कर सकते हैं।
require 'nokogiri'
doc = Nokogiri::HTML(<<EOT)
<html>
<body>
<div id="foo" class="bar">text</div>
<div id="foo2" class="bar">more_text</div>
</body>
</html>
EOT
doc.search('#foo').to_html # => "<div id=\"foo\" class=\"bar\">text</div>"
doc.search('div.bar').to_html # => "<div id=\"foo\" class=\"bar\">text</div><div id=\"foo2\" class=\"bar\">more_text</div>"
याद रखें, किसी विशेष आईडी को दस्तावेज़ में केवल एक बार मौजूद रहने की अनुमति है।
0
the Tin Man
9 जिंदा 2017, 23:55