Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在webforms中填写数据并获取参与方的名称_Python_Excel_Mechanize - Fatal编程技术网

Python 在webforms中填写数据并获取参与方的名称

Python 在webforms中填写数据并获取参与方的名称,python,excel,mechanize,Python,Excel,Mechanize,有一个网站:。我有一张excel表格,上面有锡编号(增值税编号),我必须填写锡编号部分并将名称填回表格。无论如何,我可以在尝试使用mechanize时自动执行此操作,但它会以空白回复进行响应。代码测试的一些示例(有效)TIN编号如下: 27200599589V 27940018928V 27910053455V使用以下代码: Sub Utility() Dim objIE As Object, htmldoc As Object, data, i As Long, lrow As Lon

有一个网站:。我有一张excel表格,上面有锡编号(增值税编号),我必须填写锡编号部分并将名称填回表格。无论如何,我可以在尝试使用mechanize时自动执行此操作,但它会以空白回复进行响应。代码测试的一些示例(有效)TIN编号如下:

27200599589V
27940018928V
27910053455V

使用以下代码:

Sub Utility()
    Dim objIE As Object, htmldoc As Object, data, i As Long, lrow As Long
    Dim TinNo As String
    Cells(1, 2).Select
    Range(Selection, Selection.End(xlDown)).Select
    lrow = Selection.Count
    For i = 1 To lrow
        Cells(i, 2) = cleartext(Cells(i, 2).Value)
        On Error Resume Next
    Next

    Set objIE = CreateObject("InternetExplorer.Application")
    With objIE

        .Navigate "http://mahavat.gov.in/Tin_Search/Tinsearch.jsp"

        Do While .readyState <> 4: DoEvents: Loop

        Set TIN = .document.getelementsbyname("tin")
        Set htmldoc = CreateObject("HTMLfile")

        'data = Range("B1:G" & lrow)

        On Error Resume Next

        For i = 1 To lrow

            Set TIN = .document.getelementsbyname("tin")

            Cells(i, 2).Select
            If Not IsError(Cells(i, 2)) Then
                TIN.Item(0).Value = Cells(i, 2)

                .document.getElementById("Submit").Click

                Do While .Busy Or .readyState <> 4: DoEvents: Loop

                htmldoc.body.innerhtml = objIE.document.body.innerhtml

                temp = Trim(Split(htmldoc.getElementsByTagName("Table")(14).innertext, Cells(i, 2))(1))

                If Err.Number <> 0 Then
                    .Navigate "http://mahavat.gov.in/Tin_Search/Tinsearch.jsp"
                    Do While .Busy Or .readyState <> 4: DoEvents: Loop
                    Err.Clear
                    Cells(i, 3) = "Invelid TIN(Shl'd Start with 27,Totl 12 Chr)"
                    Cells(i, 4) = "Invelid TIN"
                Else
                    Cells(i, 3) = Mid(temp, InStrRev(temp, " ") + 1, Len(temp))
                    Cells(i, 4) = Trim(Split(temp, Cells(i, 3))(0))
                End If
            End If
       Next

    End With
End Sub
Function cleartext(inputstring As String) As String
    Dim onlynumbers As String
    onlynumbers = OnlyNums(inputstring)
    'MsgBox onlynumbers
    onlynumbers = Mid(onlynumbers, InStr(1, onlynumbers, "27"), 11) & "V"
    'MsgBox onlynumbers
    If Len(onlynumbers) < 12 Then
        cleartext = CVErr(xlErrValue)
    End If
    cleartext = onlynumbers
End Function
Function OnlyNums(sWord As String) As String
    Dim sChar As String
    Dim x As Integer
    Dim sTemp As String

    sTemp = ""
    For x = 1 To Len(sWord)
        sChar = Mid(sWord, x, 1)
        If Asc(sChar) >= 48 And _
          Asc(sChar) <= 57 Then
            sTemp = sTemp & sChar
        End If
    Next
    OnlyNums = sTemp
End Function
子实用程序()
Dim objIE作为对象,htmldoc作为对象,数据,i作为长,lrow作为长
暗淡的丁诺线
单元格(1、2)。选择
范围(选择,选择。结束(xlDown))。选择
lrow=Selection.Count
对于i=1至lrow
单元格(i,2)=明文(单元格(i,2).值)
出错时继续下一步
下一个
Set objIE=CreateObject(“InternetExplorer.Application”)
与奥布杰
.导航“http://mahavat.gov.in/Tin_Search/Tinsearch.jsp"
执行While.readyState 4:DoEvents:Loop
设置TIN=.document.getelementsbyname(“TIN”)
设置htmldoc=CreateObject(“HTMLfile”)
'数据=范围(“B1:G”和lrow)
出错时继续下一步
对于i=1至lrow
设置TIN=.document.getelementsbyname(“TIN”)
单元格(i,2)。选择
如果不是IsError(单元(i,2)),则
锡。项目(0)。值=单元格(i,2)
.document.getElementById(“提交”)。单击
执行While.Busy或.readyState 4:DoEvents:Loop
htmldoc.body.innerhtml=objIE.document.body.innerhtml
temp=Trim(拆分(htmldoc.getElementsByTagName(“表”)(14)。内部文本,单元格(i,2))(1))
如果错误号为0,则
.导航“http://mahavat.gov.in/Tin_Search/Tinsearch.jsp"
执行While.Busy或.readyState 4:DoEvents:Loop
呃,明白了
单元格(i,3)=“Invelid TIN(从27开始,总共12个字符)”
单元(i,4)=“Invelid TIN”
其他的
单元(i,3)=中间(温度,仪表(温度,“”)+1,透镜(温度))
单元(i,4)=微调(拆分(温度,单元(i,3))(0))
如果结束
如果结束
下一个
以
端接头
函数cleartext(inputstring作为String)作为String
仅将数字变暗为字符串
onlynumbers=OnlyNums(inputstring)
'仅MsgBox编号
onlynumbers=Mid(onlynumbers,InStr(1,onlynumbers,“27”)、11)和“V”
'仅MsgBox编号
如果Len(onlynumbers)<12,则
明文=CVErr(Xlerr值)
如果结束
cleartext=仅限数字
端函数
函数OnlyNums(剑作为字符串)作为字符串
Dim sChar作为字符串
作为整数的Dim x
作为字符串的Dim sTemp
sTemp=“”
对于x=1到Len(剑)
沙尔=中(剑,x,1)
如果Asc(sChar)>=48且_
Asc(沙尔)