在编译以下代码时,我有一个错误对象变量或未设置块变量


Sub GetJobDetails()
Const URL$ = "https://www.linkedin.com/jobs/search/?geoId=103644278&keywords=nav&location=United%20States&start="
Dim IE As Object: Set IE = CreateObject("InternetExplorer.Application")
Dim post As Object, elem$, R&, I&: I = 0
Do
With IE
.Visible = True
.navigate URL & I
While .Busy Or .readyState < 4: DoEvents: Wend
On Error Resume Next
elem = .document.getElementsByTagName("li")(0).innerText
On Error GoTo 0
If elem = "" Then Exit Do
For Each post In .document.getElementsByTagName("li")
R = R + 1: Cells(R, 1) = post.getElementsByClassName("js_focusable")(0).innerText          
Cells(R, 2) = post.getElementsByClassName("job-card-search__company-name-link")(0).innerText                   
Cells(R, 3) = post.getElementsByClassName("job-card-search__location")(0).innerText
Next post
End With
I = I + 25
elem = ""
Application.Wait Now + TimeValue("00:00:05")
Loop
IE.Quit
End Sub

究竟是什么

"对象变量或未设置块变量">

意思是,可能是网址错了,网址会像上次一样动态变化 "开始 =25/50/75">

要从下一页获取内容,您需要先登录该站点。好消息是您可以使用xhr解析其登录页面的内容,这比IE快得多。

工作脚本(仅第一页的内容(:

Sub GetJobDetails()
Const URL$ = "https://www.linkedin.com/jobs/search/?geoId=103644278&keywords=nav&location=United%20States&start=0&redirect=false&position=1&pageNum=0"
Dim Html As New HTMLDocument, Htmldoc As New HTMLDocument
Dim I&, R&
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", URL, False
.setRequestHeader "User-Agent", "Mozilla/5.0"
.send
Html.body.innerHTML = .responseText
With Html.querySelectorAll("li.job-result-card")
For I = 0 To .Length - 1
Htmldoc.body.innerHTML = .Item(I).outerHTML
R = R + 1: Cells(R, 1) = Htmldoc.querySelector(".screen-reader-text").innerText
On Error Resume Next
Cells(R, 2) = Htmldoc.querySelector("h4.result-card__subtitle > a").innerText
On Error GoTo 0
Cells(R, 3) = Htmldoc.querySelector("span.job-result-card__location").innerText
Next I
End With
End With
End Sub

在执行上述脚本之前,请确保添加以下引用:

Microsoft HTML Object Library

同样,您需要登录到该站点才能解析下一页的内容。

最新更新