我正在尝试获取每个专利号对应的发布日期。
这是Excel表格:

数据库为espacenet.com
下面是您在Excel表格中看到的第一个专利的链接:
http://worldwide.espacenet.com/searchResults?compact=false&PN=US7055777B2&ST=advanced&locale=en_EP&DB=EPODOC
在"Publication“标题下,我需要在将专利号与Excel表格中的专利号进行匹配后获取日期。
代码如下:
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标记已被正确获取。
发布于 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。
https://stackoverflow.com/questions/24061518
复制相似问题