मैंने WinHTTP (यह प्रतिक्रिया पाठ विधि के Debug.Print के साथ एक त्रुटि थी) का उपयोग करके कनेक्शन की समस्या को दूर कर लिया है।

इसलिए मुझे एक फॉर्म (20 से अधिक) से बहुत अधिक मूल्य लेना होगा और फिर एक स्ट्रिंग बनाना होगा और एक पीडीएफ फाइल बनाने के लिए इसे http://exampletry.it/visualizzaelenco.do पर भेजना होगा।

यह फॉर्म कोड का एक नमूना है।

<BODY>
<form name="trattamentoForm" method="post" action="/ecportal/trattamento_dettaglio.do">
<input type="hidden" name="service" value="">
<input type="hidden" name="ufficioLoggato" value="">
<input type="hidden" name="uff_comp" value="DZT">
<input type="hidden" name="profiloUtente" value="U">
<input type="hidden" name="tipoModelloRicerca.codice" value="V">
<input type="hidden" name="tipoModelloRicerca.descrizioneEstesa" value="V - MODELLO V">
<input type="hidden" name="partRicerca" value="">
<input type="hidden" name="annoRicerca" value="">
<input type="hidden" name="codiceRicerca" value="123456789">
<input type="hidden" name="dataPresRicerca" value="">
<input type="hidden" name="numProtRicerca" value="">
<input type="hidden" name="concessionarioRicerca.codice" value="">
......

तो मैं टैगनाम का उपयोग किए बिना नाम और मूल्य कैसे प्राप्त कर सकता हूं? मैं WinHTTP का उपयोग कर रहा हूं और मैं IE या अन्य वेब ब्राउज़र का उपयोग नहीं करना चाहता। (मैं इसे .click और VBA और IE का उपयोग करके करने में सक्षम हूं)

जोड़ा गया कोड

oHtml.body.innerHTML = http.responseText
If http.Status = 200 Then




    Set OSTREAM = CreateObject("ADODB.Stream")
      OSTREAM.Open
     OSTREAM.Type = 1
      OSTREAM.Write http.responseBody
      File1 = "E:\test.html"
      OSTREAM.SaveToFile File1, 2
          OSTREAM.Close
      End If
        Dim html As HTMLDocument
        Set html = GetHTMLFileContent("E:\test.html")

        Dim list As Object, i As Long
        Set list = html.querySelectorAll("trattamentoForm")
        For i = 0 To list.length - 1
            Debug.Print "Name: " & list.Item(i).Name, "Value: " & list.Item(i).Value



        Next
0
Mao 9 अक्टूबर 2018, 15:31

1 उत्तर

सबसे बढ़िया उत्तर

आप जो करने की कोशिश कर रहे हैं उसके बारे में अस्पष्ट होने के लिए मैं स्वीकार करूंगा। यह मानते हुए कि आप प्रपत्र के भीतर टैग किए गए इनपुट तत्वों से value और name विशेषताओं के बाद हैं, आप एक नाम विशेषता के साथ सभी प्रपत्र तत्वों को लक्षित करने के लिए एक CSS चयनकर्ता का उपयोग कर सकते हैं और परिणाम से मेल खाने वाले तत्वों का नाम पढ़ सकते हैं और मूल्य विशेषता मान। साथ ही, मान लें कि प्रत्येक तत्व में नाम और मूल्य विशेषताएँ (जो दिखाई देती हैं) दोनों हैं।

Option Explicit
Public Sub test()
    Dim html As HTMLDocument
    Set html = New HTMLDocument
    With CreateObject("WINHTTP.WinHTTPRequest.5.1")
        .Open "GET", "yourURL", False
        .send
        html.body.innerHTML = .responseText
    End With

    Dim list As Object, i As Long
    Set list = html.querySelectorAll("form input[name]")
    For i = 0 To list.Length - 1
        Debug.Print "Name: " & list.item(i).NAME, "Value: " & list.item(i).Value
    Next
End Sub
1
QHarr 9 अक्टूबर 2018, 14:19