首页 > 编程语言 > 详细

用天眼查查询企业信息(含token和_utm值算法)

时间:2017-01-20 14:40:35      阅读:3912      评论:0      收藏:0      [点我收藏+]

已知企业ID,查询企业信息。主要是token和_utm两个值的获取。

代码如下:

Sub Main()
    根据企业在天眼查内的ID来查询企业信息
    原创:wcymiss
    
    Dim strText As String
    Dim objHttp As Object
    Dim strURL As String
    Dim ID As String
    Dim sgArr() As String
    Dim strToken As String
    Dim strUtm As String
    Dim strV As String
    Dim strCode As String
    Dim Index As Integer
    
    ID = "812498657"
    Set objHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
    
    strURL = "http://www.tianyancha.com/tongji/" & ID & ".json"
    With objHttp
        .Open "GET", strURL, False
        .setRequestHeader "Accept", "application/json, text/plain, */*"
        .Send
        strText = .responsetext
    End With
    strCode = Split(Split(strText, ",""v"":""")(1), """")(0)
    strV = StringFromCode(strCode)
    strToken = Split(Split(strV, "‘token=")(1), ";")(0)
    strCode = Split(Split(strV, "return‘")(1), "")(0)

    strURL = "http://static.tianyancha.com/wap/resources/scripts/app-ce05b92dbf.js"
    With objHttp
        .Open "GET", strURL, False
        .Send
        strText = .responsetext
    End With
    sgArr = GetSoGou(strText)
    Index = Asc(Left(ID, 1)) Mod 10
    strUtm = GetUtm(sgArr, Index, strCode)

    Debug.Print strToken    Debug.Print strUtm

    strURL = "http://www.tianyancha.com/company/" & ID & ".json"
    With objHttp
        .Open "GET", strURL, False
        .setRequestHeader "Accept", "application/json, text/plain, */*"
        .setRequestHeader "Cookie", "token=" & strToken & ";_utm=" & strUtm
        .Send
        strText = .responsetext
    End With
    
    Set objHttp = Nothing
    Debug.Print strText
End Sub

Private Function GetSoGou(strText As String) As String()
    Dim arr() As String
    Dim i As Integer
    Dim objReg As Object
    Dim sgArr(0 To 9) As String
    Dim Index As Integer
    
    Set objReg = CreateObject("VBScript.Regexp")
    objReg.Global = True
    
    arr = Split(strText, "appendChlid(")
    For i = 1 To UBound(arr)
        arr(i) = Split(Split(arr(i), ">")(1), "<")(0)
    Next
    objReg.Pattern = "&[^;]*;"
    For i = 1 To UBound(arr)
        arr(i) = objReg.Replace(arr(i), "")
    Next
    objReg.Pattern = "[^0-9a-z-]"
    For i = 1 To UBound(arr)
        arr(i) = objReg.Replace(arr(i), "")
    Next
    Set objReg = Nothing
    
    For i = 1 To UBound(arr)
        If Len(arr(i)) > 1 Then
            Index = Left(arr(i), 1)
            sgArr(Index) = sgArr(Index) & Mid(arr(i), 2)
        End If
    Next
    GetSoGou = sgArr
End Function

Private Function GetUtm(sgArr() As String, Index As Integer, strCode As String) As String
    Dim i As Integer
    Dim arr() As String
    arr = Split(strCode, ",")
    For i = 0 To UBound(arr)
        GetUtm = GetUtm & Mid(sgArr(Index), arr(i) + 1, 1)
    Next
End Function

Private Function StringFromCode(strCode As String) As String
    Dim i As Integer
    Dim arr() As String
    arr = Split(strCode, ",")
    For i = 0 To UBound(arr)
        StringFromCode = StringFromCode & Chr(arr(i))
    Next
End Function

 

用天眼查查询企业信息(含token和_utm值算法)

原文:http://www.cnblogs.com/wcymiss/p/6322554.html

(2)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!