gpt4 book ai didi

string - 无法获取以自定义关键字开头的字符串

转载 作者:行者123 更新时间:2023-12-04 20:31:00 25 4
gpt4 key购买 nike

我正在尝试获取以关键字 War 开头的字符串或 LPGA在维基百科页面中。我没有直接使用这两个关键字;相反,我通过 keyword 使用它们变量,因为其中可能包含更多项目 qsp .

但是,当我使用 Like 运行我的脚本时接线员,我什么也得不到。也没有错误。当我使用 If InStr(post.innerText, keyword) > 0 Then 运行相同的结果时,我得到了结果这段代码。问题是当我使用 InStr() 运行我的脚本时函数,它将获取那些包含 keyword 的字符串。我使用的变量不是以 keyword 开头的字符串.

那么,我该如何使用 Like我下面的脚本中的运算符来实现相同的目的。

到目前为止,这是我的尝试:

Sub FetchInfo()
Const URL As String = "https://en.wikipedia.org/wiki/Portal:Current_events"
Dim Http As New XMLHTTP60, Html As New HTMLDocument
Dim post As Object, qsp As Variant, keyword As Variant, R&

qsp = [{"War in Donbass","LPGA Tour"}]

For Each keyword In qsp
keyword = Split(keyword, " ")(0)
With Http
.Open "GET", URL, False
.send
Html.body.innerHTML = .responseText
End With

For Each post In Html.getElementsByTagName("a")
If post.innerText Like "*keyword" Then
R = R + 1: Cells(R, 1) = post.innerText
End If
Next post
Next keyword
End Sub

当我使用 InStr()函数然后该部分看起来像:
If InStr(post.innerText, keyword) > 0 Then
R = R + 1: Cells(R, 1) = post.innerText
End If

更清楚一点:如果我想搜索 War然后我想得到类似的结果(以下结果是假设的,它们可能不存在于该站点中):
war house
war of the worlds

不喜欢:
city of war
causes of the war

最佳答案

我知道您喜欢针对您的问题陈述非常具体的答案....但我很感兴趣是否可以使用 Selenium 做到这一点。因此,我使用“War”运行以下命令,看看是否可以匹配 a 的字符串以“ war ”开头的标签。显然,这可以根据您的原始示例进行扩展,但它与一般任务匹配吗?

旁注:我猜你可以使用 Split.innerText并在您的示例中测试了 LBound 。

XPath

我用 XPathstarts-with检索字符串。

XPath 查询用于页面:https://en.wikipedia.org/wiki/War_correspondent

代码输出:

Output

它与以 war 结尾的项目不匹配(Selenium basic 似乎不允许 //a[ends-with(.,'War')] ,但如果您使用 XPath 测试器,那么这些检索到的项目将是(结果的小样本):

Sample results not matched

VBA:

Option Explicit
Public Sub GetInfo()
Dim d As WebDriver, Html As HTMLDocument
Set d = New ChromeDriver
Const URL = "https://en.wikipedia.org/wiki/War_correspondent"
With d
.Start "Chrome"
.get URL
Set Html = New HTMLDocument
Html.body.innerHTML = .FindElementByXPath("//body").Attribute("innerHTML")
Dim matchedStrings As Object, currentMatch As Long
Set matchedStrings = .FindElementsByXPath("//a[starts-with(.,'War')]")
If matchedStrings Is Nothing Then
Debug.Print "No matches found"
Exit Sub
End If
For currentMatch = 1 To matchedStrings.Count
Debug.Print matchedStrings(currentMatch).Text
Next currentMatch
.Quit
End With
End Sub

关于string - 无法获取以自定义关键字开头的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50896410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com