javascript - 通过VBA提取隐藏在页面源代码中的javascript表

标签 javascript excel vba extract

我想从由 javascript 创建的页面中提取表格,但它的元素未显示在页面源代码中。这是页面 ( Link )。

在 Firefox 中,我可以通过“查看选择源”找到源的隐藏部分。但 VBA 无法访问隐藏元素:

    <div class="dataTables_wrapper no-footer" id="arzeshdarayi_wrapper"><div class="dt-buttons"><a href="#" aria-controls="arzeshdarayi" tabindex="0" class="dt-button buttons-copy buttons-html5"><span>Copy</span></a><a href="#" aria-controls="arzeshdarayi" tabindex="0" class="dt-button buttons-excel buttons-html5"><span>Excel</span></a><a href="#" aria-controls="arzeshdarayi" tabindex="0" class="dt-button buttons-print"><span>Print</span></a></div><div class="dataTables_filter" id="arzeshdarayi_filter"><label><input aria-controls="arzeshdarayi" placeholder="جستجو" class="" type="search"></label></div><table style="width: 100%;" aria-describedby="arzeshdarayi_info" role="grid" id="arzeshdarayi" class="display dataTable no-footer" cellspacing="0" width="100%">
    <thead>
        <tr role="row"><th aria-label="زمان : activate to sort column ascending" style="width: 36px;" colspan="1" rowspan="1" aria-controls="arzeshdarayi" tabindex="0" class="sorting">زمان </th><th aria-sort="descending" aria-label="تاریخ: activate to sort column ascending" style="width: 75px;" colspan="1" rowspan="1" aria-controls="arzeshdarayi" tabindex="0" class="sorting_desc">تاریخ</th><th aria-label="قیمت صدور: activate to sort column ascending" style="width: 63px;" colspan="1" rowspan="1" aria-controls="arzeshdarayi" tabindex="0" class="sorting">قیمت صدور</th><th aria-label="قیمت ابطال خالص ارزش روز    : activate to sort column ascending" style="width: 82px;" colspan="1" rowspan="1" aria-controls="arzeshdarayi" tabindex="0" class="sorting">قیمت ابطال خالص ارزش روز    </th><th aria-label="خالص ارزش آماری    : activate to sort column ascending" style="width: 70px;" colspan="1" rowspan="1" aria-controls="arzeshdarayi" tabindex="0" class="sorting">خالص ارزش آماری </th><th aria-label="تفاوت مبلغ ارزش آماری با خالص ارزش روز : activate to sort column ascending" style="width: 82px;" colspan="1" rowspan="1" aria-controls="arzeshdarayi" tabindex="0" class="sorting">تفاوت مبلغ ارزش آماری با خالص ارزش روز  </th><th aria-label="تفاوت درصد ارزش آماری با خالص ارزش روز : activate to sort column ascending" style="width: 88px;" colspan="1" rowspan="1" aria-controls="arzeshdarayi" tabindex="0" class="sorting">تفاوت درصد ارزش آماری با خالص ارزش روز  </th><th aria-label="تعداد واحدهای صادرشده امروز    : activate to sort column ascending" style="width: 73px;" colspan="1" rowspan="1" aria-controls="arzeshdarayi" tabindex="0" class="sorting">تعداد واحدهای صادرشده امروز </th><th aria-label="تعداد واحدهای صادر شده تاامروز : activate to sort column ascending" style="width: 93px;" colspan="1" rowspan="1" aria-controls="arzeshdarayi" tabindex="0" class="sorting">تعداد واحدهای صادر شده تاامروز  </th><th aria-label="تعداد واحدهای ابطال شده امروز      : activate to sort column ascending" style="width: 74px;" colspan="1" rowspan="1" aria-controls="arzeshdarayi" tabindex="0" class="sorting">تعداد واحدهای ابطال شده امروز       </th><th aria-label="تعداد واحدهای ابطال شده تا امروز   : activate to sort column ascending" style="width: 88px;" colspan="1" rowspan="1" aria-controls="arzeshdarayi" tabindex="0" class="sorting">تعداد واحدهای ابطال شده تا امروز    </th><th aria-label="تعداد واحد سرمایه‌گذاری نزد سرمایه‌گذار    : activate to sort column ascending" style="width: 95px;" colspan="1" rowspan="1" aria-controls="arzeshdarayi" tabindex="0" class="sorting">تعداد واحد سرمایه‌گذاری نزد سرمایه‌گذار </th><th aria-label="كل خالص ارزش دارائيها: activate to sort column ascending" style="width: 118px;" colspan="1" rowspan="1" aria-controls="arzeshdarayi" tabindex="0" class="sorting">كل خالص ارزش دارائيها</th></tr>
    </thead>
    <tbody><tr class="odd" role="row"><td>12:46</td><td class="sorting_1">1396/10/15</td><td>1,012,967</td><td>1,011,507</td><td>1,009,098</td><td>2409</td><td>0.24%</td><td>0</td><td>11,524,203</td><td>0</td><td>4,953,477</td><td>6,571,726</td><td>6,647,351,262,746</td></tr><tr class="even" role="row"><td>12:40</td><td class="sorting_1">1396/10/14</td><td>1,012,333</td><td>1,010,883</td><td>1,008,473</td><td>2410</td><td>0.24%</td><td>77959</td><td>11,524,203</td><td>5143</td><td>4,953,477</td><td>6,571,726</td><td>6,643,244,452,033</td></tr><tr class="odd" role="row"><td>13:12</td><td class="sorting_1">1396/10/13</td><td>1,011,819</td><td>1,010,362</td><td>1,007,927</td><td>2435</td><td>0.24%</td><td>171728</td><td>11,446,244</td><td>14069</td><td>4,948,334</td><td>6,498,910</td><td>6,566,254,645,887</td></tr><tr class="even" role="row"><td>11:14</td><td class="sorting_1">1396/10/12</td><td>1,011,267</td><td>1,009,782</td><td>1,007,298</td><td>2484</td><td>0.25%</td><td>62780</td><td>11,274,516</td><td>21849</td><td>4,934,265</td><td>6,341,251</td><td>6,403,285,129,644</td></tr><tr class="odd" role="row"><td>11:49</td><td class="sorting_1">1396/10/11</td><td>1,010,690</td><td>1,009,205</td><td>1,006,699</td><td>2506</td><td>0.25%</td><td>39550</td><td>11,211,736</td><td>35114</td><td>4,912,416</td><td>6,300,320</td><td>6,358,313,227,919</td></tr><tr class="even" role="row"><td>11:07</td><td class="sorting_1">1396/10/10</td><td>1,010,021</td><td>1,008,623</td><td>1,006,113</td><td>2510</td><td>0.25%</td><td>50967</td><td>11,172,186</td><td>126252</td><td>4,877,302</td><td>6,295,884</td><td>6,350,169,723,202</td></tr><tr class="odd" role="row"><td>12:36</td><td class="sorting_1">1396/10/09</td><td>1,009,435</td><td>1,008,056</td><td>1,005,584</td><td>2472</td><td>0.25%</td><td>17254</td><td>11,121,219</td><td>7092</td><td>4,751,050</td><td>6,371,169</td><td>6,422,499,283,915</td></tr><tr class="even" role="row"><td>15:07</td><td class="sorting_1">1396/10/08</td><td>1,008,734</td><td>1,007,358</td><td>1,004,882</td><td>2476</td><td>0.25%</td><td>0</td><td>11,103,965</td><td>0</td><td>4,743,958</td><td>6,361,007</td><td>6,407,808,590,653</td></tr><tr class="odd" role="row"><td>15:00</td><td class="sorting_1">1396/10/07</td><td>1,008,215</td><td>1,006,851</td><td>1,004,375</td><td>2476</td><td>0.25%</td><td>50208</td><td>11,103,965</td><td>29158</td><td>4,743,958</td><td>6,361,007</td><td>6,404,584,654,430</td></tr><tr class="even" role="row"><td>13:49</td><td class="sorting_1">1396/10/06</td><td>1,007,682</td><td>1,006,326</td><td>1,003,842</td><td>2484</td><td>0.25%</td><td>196263</td><td>11,053,757</td><td>26576</td><td>4,714,800</td><td>6,339,957</td><td>6,380,065,439,986</td></tr><tr class="odd" role="row"><td>13:52</td><td class="sorting_1">1396/10/05</td><td>1,007,102</td><td>1,005,724</td><td>1,003,179</td><td>2545</td><td>0.25%</td><td>98424</td><td>10,857,494</td><td>24918</td><td>4,688,224</td><td>6,170,270</td><td>6,205,583,745,026</td></tr><tr class="even" role="row"><td>13:57</td><td class="sorting_1">1396/10/04</td><td>1,006,507</td><td>1,005,293</td><td>1,002,692</td><td>2601</td><td>0.26%</td><td>55056</td><td>10,759,070</td><td>19459</td><td>4,663,306</td><td>6,096,764</td><td>6,129,032,475,294</td></tr><tr class="odd" role="row"><td>13:18</td><td class="sorting_1">1396/10/03</td><td>1,005,818</td><td>1,004,597</td><td>1,002,057</td><td>2540</td><td>0.25%</td><td>96499</td><td>10,704,014</td><td>155772</td><td>4,643,847</td><td>6,061,167</td><td>6,089,028,779,015</td></tr><tr class="even" role="row"><td>13:57</td><td class="sorting_1">1396/10/02</td><td>1,005,237</td><td>1,004,028</td><td>1,001,431</td><td>2597</td><td>0.26%</td><td>2721</td><td>10,607,515</td><td>788</td><td>4,488,075</td><td>6,120,440</td><td>6,145,088,189,758</td></tr><tr class="odd" role="row"><td>14:00</td><td class="sorting_1">1396/10/01</td><td>1,004,652</td><td>1,003,456</td><td>1,000,869</td><td>2587</td><td>0.26%</td><td>0</td><td>10,604,794</td><td>0</td><td>4,487,287</td><td>6,118,507</td><td>6,139,652,390,252</td></tr><tr class="even" role="row"><td>13:56</td><td class="sorting_1">1396/09/30</td><td>1,004,105</td><td>1,002,916</td><td>1,000,330</td><td>2586</td><td>0.26%</td><td>191603</td><td>10,604,794</td><td>9080</td><td>4,487,287</td><td>6,118,507</td><td>6,136,353,083,234</td></tr><tr class="odd" role="row"><td>13:51</td><td class="sorting_1">1396/09/29</td><td>1,003,514</td><td>1,002,297</td><td>999,632</td><td>2665</td><td>0.27%</td><td>103340</td><td>10,413,191</td><td>21231</td><td>4,478,207</td><td>5,935,984</td><td>5,949,621,352,682</td></tr><tr class="even" role="row"><td>12:54</td><td class="sorting_1">1396/09/28</td><td>1,002,923</td><td>1,001,735</td><td>999,043</td><td>2692</td><td>0.27%</td><td>289038</td><td>10,309,851</td><td>10684</td><td>4,456,976</td><td>5,853,875</td><td>5,864,030,526,174</td></tr><tr class="odd" role="row"><td>13:01</td><td class="sorting_1">1396/09/27</td><td>1,002,139</td><td>1,001,151</td><td>1,001,151</td><td>0</td><td>0.00%</td><td>124135</td><td>10,020,813</td><td>23504</td><td>4,446,292</td><td>5,575,521</td><td>5,581,939,275,757</td></tr><tr class="even" role="row"><td>12:16</td><td class="sorting_1">1396/09/26</td><td>1,001,571</td><td>1,000,575</td><td>1,000,575</td><td>0</td><td>0.00%</td><td>40709</td><td>9,896,678</td><td>78930</td><td>4,422,788</td><td>5,474,890</td><td>5,478,036,347,324</td></tr></tbody>
</table><div aria-live="polite" role="status" id="arzeshdarayi_info" class="dataTables_info">نمایش 1 تا 20 از تعداد 2,144 </div><div id="arzeshdarayi_paginate" class="dataTables_paginate paging_simple_numbers"><a id="arzeshdarayi_previous" tabindex="0" data-dt-idx="0" aria-controls="arzeshdarayi" class="paginate_button previous disabled">قبلی</a><span><a tabindex="0" data-dt-idx="1" aria-controls="arzeshdarayi" class="paginate_button current">1</a><a tabindex="0" data-dt-idx="2" aria-controls="arzeshdarayi" class="paginate_button ">2</a><a tabindex="0" data-dt-idx="3" aria-controls="arzeshdarayi" class="paginate_button ">3</a><a tabindex="0" data-dt-idx="4" aria-controls="arzeshdarayi" class="paginate_button ">4</a><a tabindex="0" data-dt-idx="5" aria-controls="arzeshdarayi" class="paginate_button ">5</a><span class="ellipsis">…</span><a tabindex="0" data-dt-idx="6" aria-controls="arzeshdarayi" class="paginate_button ">108</a></span><a id="arzeshdarayi_next" tabindex="0" data-dt-idx="7" aria-controls="arzeshdarayi" class="paginate_button next">بعدی</a></div></div>

最佳答案

试试这个。它应该为您获取所需的表格数据:

Sub TableData()
    Dim IE As New InternetExplorer, html As HTMLDocument
    Dim post As Object, elem As Object, trow As Object

    With IE
        .Visible = False
        .navigate "http://www.iafi.ir/%DA%AF%D8%B2%D8%A7%D8%B1%D8%B4%D8%A7%D8%AA/%D8%A7%D8%B1%D8%B2%D8%B4-%D8%AF%D8%A7%D8%B1%D8%A7%DB%8C%DB%8C-%D9%87%D8%A7-%D9%88-%D8%AA%D8%B9%D8%AF%D8%A7%D8%AF-%D9%88%D8%A7%D8%AD%D8%AF-%D9%87%D8%A7"
        While .readyState < 4: DoEvents: Wend
        Set html = .document
    End With

    Application.Wait Now + TimeValue("00:00:05") 'this is the trick here to get the data

    Set post = html.getElementById("arzeshdarayi")

    For Each elem In post.Rows
        For Each trow In elem.Cells
            c = c + 1: Cells(r + 1, c) = trow.innerText
        Next trow
        c = 0
        r = r + 1
    Next elem
    IE.Quit
End Sub

添加到库的引用:

Microsoft Internet Controls
Microsoft HTML Object Library

关于javascript - 通过VBA提取隐藏在页面源代码中的javascript表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48132461/

相关文章:

sql - 如何在MS Access中使用VBA将值插入数据库表

excel - 如何检查子字符串是否在Excel工作表行中的任何条目中?

perl - 如何在 Perl 或批处理中合并两个 Excel (xls) 文件?

java - JExcelAPI - 将日期写入 Excel 工作表会忽略日、月和年

vba - 使用vba在excel中搜索不同的项目

excel - 如何在 VBA 中使用 FindWindow 查找具有部分名称的可见或不可见窗口

javascript - 如何从范围对象中获取所需的数字位数?

javascript - 使用 mocha 重用场景

javascript - 如何创建原型(prototype)函数可访问的私有(private)变量?

javascript - 单击按钮时如何使页面滑到屏幕上?