/ / मैं XPath मान कैसे प्रिंट करूं? - माणिक, xpath, मशीनीकृत

मैं XPath मान कैसे प्रिंट करूं? - रूबी, xpath, मशीनीकरण

मैं एक XPath नोड की सामग्री प्रिंट करना चाहता हूं। यही सब कुछ मेरे पास है:

require "mechanize"
agent = Mechanize.new
agent.get("http://store.steampowered.com/promotion/snowglobefaq")
puts agent.xpath("//*[@id="item_52b3985a70d58"]/div[4]")

यह रिटर्न: <main>: undefined method xpath for #<Mechanize:0x2fa18c0> (NoMethodError).

मैंने अभी मशीनीकृत का उपयोग करना शुरू किया है और मुझे पता नहीं है कि मैं क्या कर रहा हूं, हालांकि, मैंने "वतिर का इस्तेमाल किया और सोचा कि यह काम करेगा लेकिन यह नहीं किया"।

उत्तर:

जवाब के लिए 0 № 1

आप पृष्ठ को पुनः प्राप्त करने के लिए पार्स करने के लिए नोकोगिरी का उपयोग करते हैं। यहाँ उदाहरण कोड है:

m = Mechanize.new
result = m.get("http://google.com")

html = Nokogiri::HTML(result.body)
divs = html.xpath("//div").map { |div| div.content } # here you can do whatever is needed with the divs
# I"ve mapped their content into an array

जवाब के लिए 0 № 2

दो चीजें गलत हैं:

  1. आईडी उस पेज पर मौजूद नहीं है। टैग आईडी की सूची उपलब्ध देखने के लिए यह कोशिश करें:

    require "open-uri"
    require "nokogiri"
    
    doc = Nokogiri::HTML(open("http://store.steampowered.com/promotion/snowglobefaq"))
    puts doc.search("[id*="item"]").map{ |n| n["id"] }.sort
    
  2. विधियों की सही श्रृंखला है agent.page.xpath.

क्योंकि कोई सैंपल HTML नहीं है जो वास्तव में आपको कौन सा टैग चाहिए, हम आपकी बहुत मदद कर सकते हैं।