Извлечение данных с использованием VBA - PullRequest
0 голосов
/ 11 октября 2018

Как извлечь скрытый контактный номер WhatsApp из https://www.justdial.com/Ahmedabad/Kalon-Laser-Skin-And-Slimming-Across-Shell-Petrol-Pump-Prahladnagar/079PXX79-XX79-171119143016-Q7S9_BZDET?xid=QWhtZWRhYmFkIEJlYXV0eSBQYXJsb3Vycw?

Вот мой код.

Public Sub GetValueFromBrowser()

    Dim Sn As Integer
    Dim ie As Object
    Dim url As String
    Dim Doc As HTMLDocument 

    url = "https://www.justdial.com/Ahmedabad/Kalon-Laser-Skin-And-Slimming-Across-Shell-Petrol-Pump-Prahladnagar/079PXX79-XX79-171119143016-Q7S9_BZDET?xid=QWhtZWRhYmFkIEJlYXV0eSBQYXJsb3Vycw"

    Set ie = CreateObject("InternetExplorer.Application")

    With ie
      .Visible = 0
      .navigate url
       While .Busy Or .readyState <> 4
         DoEvents
       Wend
    End With

    Set Doc = ie.document

    Range("C13") = Trim(Doc.getElementsByID("whatsapptriggeer")(0).Value)

End Sub

enter image description here

1 Ответ

0 голосов
/ 11 октября 2018

Вы можете разобрать его из html элемента.Существует элемент кнопки со скрытым номером телефона, который используется в качестве идентификатора пользователя.Вы можете использовать селектор CSS для извлечения этого элемента:

enter image description here

Затем потяните externalHTML:

<BUTTON onclick="chkphtvc('079PXX79.XX79.171119143016.Q7S9','https://catalog.justdial.com/mcatalog/index.php?type=website&amp;v=1&amp;l=1&amp;c=1&amp;city=Ahmedabad&amp;company_name=Kalon+Laser+Skin+And+Slimming&amp;docid=079PXX79.XX79.171119143016.Q7S9&amp;userid=9429907546&amp;ps=6&amp;vcode=&amp;m=1&amp;pincode=380015','');" class="jbtn fltrt">Submit</BUTTON>

И проанализируйте это, чтобы получить номер.При желании вы можете добавить префикс +91.

Option Explicit

Public Sub GetTelNumber()
    Dim sResponse As String, html As HTMLDocument

    With CreateObject("MSXML2.XMLHTTP")
        .Open "GET", "https://www.justdial.com/Ahmedabad/Kalon-Laser-Skin-And-Slimming-Across-Shell-Petrol-Pump-Prahladnagar/079PXX79-XX79-171119143016-Q7S9_BZDET?xid=QWhtZWRhYmFkIEJlYXV0eSBQYXJsb3Vycw", False
        .setRequestHeader "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"
        .send
        sResponse = StrConv(.responseBody, vbUnicode)
    End With
    Set html = New HTMLDocument

    With html
        .body.innerHTML = sResponse
        Debug.Print Split(Split(.querySelector(".jbtn.fltrt[onclick*=userid]").outerHTML, "userid=")(1), "&")(0)
    End With

End Sub

Для других ваших ссылок, поскольку я не могу получить доступ к идентификатору, который вы показываете, вот как теоретически вы можете получить элемент по его идентификатору,затем извлеките href и разберите номер телефона:

Debug.Print Split(doc.getElementById("whatsapptriggeer").href, "phone=")(1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...