- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从 1930 年以来的世界杯足球赛中获得分数,在此链接中列出了比赛,通过单击球队,弹出一个新窗口,其中包含我正在寻找的摘要。我的问题是在 HTML 源代码中我没有看到 <a>
通常带有href的标签,我正在尝试使用以下VBA代码模拟点击事件:
链接:http://www.flashscore.com/soccer/world/world-cup-1990/results/
VBA代码:
Sub Test()
Dim URL As String
Dim IE As InternetExplorer
Dim HTMLdoc As HTMLDocument
Dim TDelements As IHTMLElementCollection
Dim TDelement As HTMLTableCell
Dim i As Integer
URL = "http://www.flashscore.com/soccer/world/world-cup-1990/results/"
Set IE = New InternetExplorer
With IE
.Navigate URL
.Visible = True
While .Busy Or .ReadyState <> READYSTATE_COMPLETE: DoEvents: Wend
Set HTMLdoc = .Document
End With
Set TDelements = HTMLdoc.getElementsByTagName("td")
For Each TDelement In TDelements
If TDelement.Title = "Click for match detail!" Then
TDelement.Click
End If
Next
IE.Quit
End Sub
最佳答案
我会以不同的方式进行此操作,因为您要实现的目标需要大量开销,并且可能会让您对链接、 Action 、循环等进行疯狂追逐。与其模拟 Action ,不如模拟 Action 的结果。
以 为例德国 - 阿根廷 匹配。当你点击它时,它会打开这个弹出窗口:
这里需要特别注意的是弹出窗口的 URL。直观地说,URL 有一些奇怪的组合,可能是唯一标识符。我们检查的第一件事是我们刚刚单击的表中该行的标记。
检查突出显示的部分:它与我们弹出窗口中的地址非常相似,尽管开头有四 (4) 个额外字符。折叠该行并与其他行进行交叉检查,我们得出结论,这些行使用类似的格式:
删除 g_1_ 来自 id
tr
的属性标签为我们提供了每个匹配项的唯一标识符。我会带上经过 sanitizer 的 id
来自 意大利 - 英国 匹配,我会将其输入到通用 URL 中。当弹出窗口的地址栏被锁定时,我们将在另一个选项卡中执行此操作:
瞧。该页面在另一个选项卡中打开,从那里您可以从比赛摘要中获得所需的内容。您甚至可以通过更改 #match-summary
来检查头对头。至#h2h;overall
.
为什么这很重要?
因为它更安全。由于您使用的是 Excel,因此您可以控制工作表。最安全的方法是记录所有这些id
将每一行的属性转换为一列。然后遍历该列,将其正确连接以生成目标 URL。
然后你遍历这些 URL 并从 中得到你想要的。准确 您正在寻找的页面。此时不再需要原始链接/表格,因为几乎所有细节都在“摘要”页面中。
希望这会有所帮助,祝你好运。
后续编辑
由于没有发布任何代码我感到有点内疚,这是我尝试生成 id
世界杯部分的值(value)观。请注意,我对代码进行了一些改动,因此请对其进行修改以更好地适应您的方法。我只会提供获取 id
的方法值(value)观。其他一切都取决于你。
Sub Test()
Dim URL As String
Dim IE As New InternetExplorer
Dim HTMLdoc As HTMLDocument
Dim dictObj As Object: Set dictObj = CreateObject("Scripting.Dictionary")
Dim tRowID As String
URL = "http://www.flashscore.com/soccer/world/world-cup-1990/results/"
With IE
.Navigate URL
.Visible = True
Do Until .ReadyState = READYSTATE_COMPLETE: DoEvents: Loop
Set HTMLdoc = .Document
End With
With HTMLdoc
'Target the set of tables.
Set tblSet = .getElementById("fs-results")
'Index starts at 0. World Cup Playoffs is (0), World Cup is (1),
'Qualifiers is (2), etc... Targeting tbody right away, as there is
'only one (1) tbody tag per row anyway.
Set mTbl = tblSet.getElementsByTagName("tbody")(1)
Set tRows = mTbl.getElementsByTagName("tr")
With dictObj
'If if value is not yet in dictionary, store it.
For Each tRow In tRows
'Remove the first four (4) characters.
tRowID = Mid(tRow.getAttribute("id"), 5)
If Not .Exists(tRowID) Then
.Add tRowID, Empty
End If
Next tRow
End With
End With
'Print out each of the ID values.
For Each Key In dictObj
Debug.Print Key
Next Key
Set IE = Nothing
End Sub
id
世界杯表的值(value)(不是季后赛!):
04LfR6G7
6RNojjg8
nww8zBgL
t0xCZU8R
dKY0Pgu3
jsY4ODf9
K4YcDdti
2qM7lD3j
bXvdGk2k
tdU0F9He
65hR8YfM
lUsW7hAS
jBqaxXO8
YZY3yivF
n1HjSn11
hvInTSoe
rHUdQZPd
xfS51jmd
ncyhHVnq
4b34kglp
O0kz7LJH
lpQE9EuG
UHlQLBvS
fNQAAfQ9
CKpewD92
EmJrU8Wl
KnT4ETW1
nRnnVlHr
b3T12WXk
jwUc3CIq
n9RDMiPL
pAjW714B
GznS8sk5
GWR6BzB3
UXW8NX9F
beX1CGec
关于VBA:如何在 <td> 标签中获取隐藏的href,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22311579/
我正在尝试通过 node.js 中的 puppeteer 抓取数据 目前,我正在寻找一个脚本,用于抓取 well.ca 某个部分中的所有数据 现在,这是我试图通过 node.js 实现的方法/逻辑 1
href=""、href="#" 和 href="javascript:void(0)" 之间有什么区别? 它们有哪些不同的用途,什么时候一个比另一个更好? 最佳答案 href=""将重新加载当前页面
这是html代码: Delivery Schedule Route Abstract Report 我有 href 值。使用 href 值,我应该找到 anchor 标记并使用 jQuery
我不确定是不是因为我使用的是 Wordpress 但 this.href 没有返回包含它们的项目的 href(例如在“联系人”上它返回 http://www.domain.net/undefined反
这个问题在这里已经有了答案: Is there a "previous sibling" selector? (33 个答案) 关闭 8 年前。
这个问题在这里已经有了答案: Are you allowed to nest a link inside of a link? (9 个回答) 关闭 6 年前。 我有一个可点击的面板,其中有一个工具
我的 css 如下所示 ul.sometclass li a { display:inline-block; } 我的 html 看起来像 outer test
我没看明白这段代码是什么意思? a[href*=#]:not([href=#]) 谢谢! 最佳答案 简单地: a[href*=#] 获取 href 中包含 # 的所有 anchor (a)。 但是有:
document.getElementById("IDOFELEMENT"); 将其转换为链接的正确方法是什么? 我可以写吗 document.getElementById("IDOFELEME
所以我在我的 Next JS 应用程序中遇到了这个奇怪的问题,我导入了谷歌字体,如下所示 在我的浏览器中显示的不是 href,而是 data-href="...",所以问题是谷歌无法将此识别为链接
我想获取所选选项的 href 值,以便我现在可以转到使用按钮选择的链接。 这是我的代码
我正在尝试获取我的一个链接的 href 并将其克隆/复制到另一个链接的 href 这是我正在尝试的 var link = $('.topbook'); var link2 =
我基本上是试图从一个链接获取href,然后将其填充到另一个链接中: HTML: Link to thing Link to duplicate 脚本: $('.main-link').attr('hr
我使用的 CSS 工具提示必须包含在“a href”中才能工作。 iPad [add_to_cart_anchor item="ipad"]purchase the iPad[/add_to_c
我有一个以前是纯文本的电子邮件正文,但现在我把它变成了 HTML。电子邮件是使用多种方法生成的,但没有一种方法易于转换。 我有的是: Some content emailaddress@somethi
我正在尝试从网页中抓取数据,然后通过提取下一页的 href 来转到下一页。 但是,在这种情况下,包含下一页的 href 的标签是 href='#next'。使用 Chrome 检查此元素后,当我将鼠标
在我的 html 页面中,我看到一个链接,其“查看源代码”代码如下: 当我将鼠标悬停在链接上并单击它时,我看到了一个有效链接。但我无法找到生成此 URL 的位置和方式。我发现类 a.view 是在其
看完这篇文章net.tutsplus.com/tutorials/javascript-ajax/14-helpful-jquery-tricks-notes-and-best-practices/我
我想用 SvelteKit 构建一个 Web 应用程序,其中一页列出所有项目(带有潜在的搜索查询参数),然后每个单独的项目一页。如果我必须使用后端生成的所有内容以老式方式构建它,我的路径将是 /ite
此 js 搜索包含 page=fleet 的 href其中: var links = document.querySelectorAll('a[href*="page=fleet"]'); var h
我是一名优秀的程序员,十分优秀!