Javascript 使用Google Apps脚本从网页中提取img URL
这是一个应用程序脚本,它遍历网页并收集特殊类的某个div中的img URLJavascript 使用Google Apps脚本从网页中提取img URL,javascript,google-apps-script,web-scraping,Javascript,Google Apps Script,Web Scraping,这是一个应用程序脚本,它遍历网页并收集特殊类的某个div中的img URL function getIMGs(url){ var url = 'url' var result = UrlFetchApp.fetch(url); if (result.getResponseCode() == 200) { var doc = Xml.parse(result, true); var bodyHtml = doc.html.body.toXmlString();
function getIMGs(url){
var url = 'url'
var result = UrlFetchApp.fetch(url);
if (result.getResponseCode() == 200) {
var doc = Xml.parse(result, true);
var bodyHtml = doc.html.body.toXmlString();
var doc = XmlService.parse(bodyHtml);
var html = doc.getRootElement();
var thumbs = getElementsByClassName(html, 'thumb');
var sheet = SpreadsheetApp.getActiveSheet();
for (i in Thumbs) {
var output = '';
var linksInMenu = getElementsByTagName(thumbs[i], 'img');
for(i in linksInMenu) {
output += XmlService.getRawFormat().format(linksInMenu[i]);
}
var linkRegExp = /data-src="(.*?)"/;
var dataSrc = linkRegExp.exec(output);
sheet.appendRow([dataSrc[1]]);
}
}
首先,代码获取html,并使用辅助函数获取某些元素,如下所示:
<div class="thumb"><div class="loader"><span class="icon-uniE611"></span></div><img src="//xxx" data-src="https://xxx/8491a83b1cacc2401907997b5b93e433c03c91f.JPG" data-target="#image-slider" data-slide-to="0"></div>
然后代码获取img元素,最后通过RegExp提取数据src地址
虽然这有点有效,但我有一个问题:
1) 在9个循环之后,它崩溃了,在appendRow行上,因为最后4个Thumbs元素没有数据src,因此我试图写入电子表格的内容是空的
有什么解决办法吗?目前我只对for循环进行了9次迭代就解决了这个问题,但这远远不是最优的,因为它不是自动化的,需要我遍历页面以使用数据src计算元素
此外,任何关于更优雅解决方案的建议都将不胜感激!我真的很感激你的帮助
干杯抱歉,不知道,已修复!如果
dataSrc[1]
导致null
,您可以在使用append()
方法之前进行条件测试:If(dataSrc[1]==null){continue}代码>继续循环该值为空。抱歉,不知道,已修复!如果dataSrc[1]
导致null
,您可以在使用append()
方法之前进行条件测试:If(dataSrc[1]==null){continue}代码>继续循环,如果值为空。