首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从网页获取数据

从网页获取数据
EN

Stack Overflow用户
提问于 2014-06-05 21:27:00
回答 1查看 259关注 0票数 2

我正在尝试获取每个专利号对应的发布日期。

这是Excel表格:

数据库为espacenet.com

下面是您在Excel表格中看到的第一个专利的链接:

http://worldwide.espacenet.com/searchResults?compact=false&PN=US7055777B2&ST=advanced&locale=en_EP&DB=EPODOC

在"Publication“标题下,我需要在将专利号与Excel表格中的专利号进行匹配后获取日期。

代码如下:

代码语言:javascript
复制
Sub tryextraction()

Dim ie As New InternetExplorer
Dim sdd As String
Dim tdd() As String
Dim num0 As Integer
Dim num1 As Integer
Dim doc As HTMLDocument
Dim i As Integer
Dim j As Integer

ie.Visible = True

num1 = ActiveSheet.UsedRange.Rows.Count

For num0 = 2 To num1
     ie.navigate "http://worldwide.espacenet.com/searchResults?compact=false&PN=" & Range("A" & num0) & "&ST=advanced&locale=en_EP&DB=EPODOC"

    Do
        DoEvents
    Loop Until ie.readyState = READYSTATE_COMPLETE

    Set doc = ie.document
    sdd = Trim(doc.getElementsByTagName("td")(5).innerText)
    tdd() = Split(sdd, vbLf)
    j = UBound(tdd)

    For i = 0 To j
        If InStr(tdd(i), "(") <> 0 Then
            tdd(i) = Replace(tdd(i), " ", "")
            tdd(i) = Replace(tdd(i), "(", "")
            tdd(i) = Replace(tdd(i), ")", "")

            If tdd(i) = Range("A" & num0).Value Then
                Range("B" & num0).Value = tdd(i + 1)
            End If
        End If
    Next i
Next num0
ie.Quit

End Sub

代码未显示任何错误。代码运行完成后,“发布日期”列将保留为空。

包含发布信息的html标记已被正确获取。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-05 21:56:31

在文档中搜索的ID后面有一些尾随的空格字符,因此tdd(i) = Range("A" & num0).Value永远不会计算为true。它不仅仅是一个空格,所以简单的Trim(tdd(i)) = Range("A" & num0).Value调用是没有帮助的。如果这还不够好,请尝试使用InStr(tdd(i), Range("A" & num0).Value),在进行比较之前,您必须专门从字符串的末尾删除CRLF。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24061518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档