我使用以下脚本从网页中提取源HTML:
var url = "http://www.asx.com.au/asx/markets/dividends.do?by=asxCodes&asxCodes=BHP";
var xmlFeed = UrlFetchApp.fetch(url).getContentText();
检查xmlFeed文本我发现它与我使用浏览器看到的页面源相比已被截断,而我正在寻找的数据(股息数据表)不存在。事实上,唯一剩下的HTML似乎是在< APM_DO_NOT_TOUCH>内。 标签
我认为这可能是因为股息数据是由脚本生成的,但在我的浏览器中禁用javascript后,我仍然可以看到页面源中的数据(下面的简明版):
<table class="datatable" id="dividends" cellspacing="0">
<tr>
<th class="row" scope="row">
<a onclick="trackAsxCodeClick('BHP')" href="/asx/share-price-research/company/BHP">BHP</a>
</th>
<td>BHP BILLITON LIMITED</td>
<td>
18.521c
</td>
<td>
01/09/2016
</td>
我还使用Python中的beautifulsoup库成功地删除了数据,它告诉我数据必须在源HTML中,而不是由脚本生成。
答案 0 :(得分:0)
如果数据是由脚本生成并提取出来的,您可以尝试使用其他一些 HTML 源代码生成器网站并获取生成的结果
var html = UrlFetchApp.fetch('https://www.joydeepdeb.com/tools/support/print-code.html?v='+your_url_with_script).getContentText();
(此或任何其他源代码提供者服务) 这也将提供由 js 处理的完整源代码。在 Logger.log() 中,它仅限于显示所有结果。因此,将结果发送到邮件使用 GmailApp.sendEmail(Session.getEffectiveUser().getEmail(), "Result", html); 并分析