从网页提取数据

我正在试图获取对应于每个专利号码的数据。 我其实想要每个专利的发表date。 这是excel表单:

在这里输入图像说明

我正在使用的数据库是espacenet.com以下是您在Excel表中看到的第一个专利的链接: http ://worldwide.espacenet.com/searchResults?compact=false&PN=US7055777B2&ST=advanced&locale=en_EP&DB=EPODOC

在这个网页上,在“发布信息”的标题下,我需要把专利号与excel表中的专利号匹配成功后才能得到date。

代码如下:

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 

代码可能看起来很天真,因为我没有太多编码。 无论如何,这并没有给出任何错误,但在代码完成运行后,“发布date”一栏保持空白。 包含发布信息的html标签已被正确采用。 请帮忙。

在文档中search的ID后面有一些空白字符,所以tdd(i) = Range("A" & num0).Value从不计算为true。 这不仅仅是一个空格,所以一个简单的Trim(tdd(i)) = Range("A" & num0).Value调用没有帮助。 尝试改为InStr(tdd(i), Range("A" & num0).Value)如果这还不够好,在做比较之前,必须从string的末尾专门删除CRLF。