Javascript phantomjs代码的解释
我被要求使用phantomjs开发网络爬虫。然而,当我通读示例时,我对一些代码感到困惑: 这是环路吗<代码>$(“表[id^='post'])。每个(函数(索引) 这行代码是什么意思?Javascript phantomjs代码的解释,javascript,jquery,phantomjs,Javascript,Jquery,Phantomjs,我被要求使用phantomjs开发网络爬虫。然而,当我通读示例时,我对一些代码感到困惑: 这是环路吗$(“表[id^='post'])。每个(函数(索引) 这行代码是什么意思?var entry=$(this); 如何捕获id?var id=entry.attr('id')。子字符串(4); 这一行var poster=entry.find('a.bigusername');尝试从页面获取用户名。是否有关于如何使用entry.find从页面上删除数据的教程 page.open(url1, fun
var entry=$(this);
如何捕获id?var id=entry.attr('id')。子字符串(4);
这一行var poster=entry.find('a.bigusername');
尝试从页面获取用户名。是否有关于如何使用entry.find从页面上删除数据的教程
page.open(url1, function (status) {
// Check for page load success
if (status !== "success") {
console.log("Unable to access network");
phantom.exit(231);
} else {
if (page.injectJs("../lib/jquery-2.1.0.min.js") && page.injectJs("../lib/moment-with-langs.js") && page.injectJs("../lib/sugar.js") && page.injectJs("../lib/url.js")){
allResults = page.evaluate(function(url) {
var arr = [];
var title = $("meta[property='og:title']").attr('content');
title = title.trim();
$("table[id^='post']").each(function(index){
var entry = $(this);
var id = entry.attr('id').substring(4);
var poster = entry.find('a.bigusername');
poster = poster.text().trim();
var text = entry.find("div[id^='post_message_']");
//remove quotes of other posts
text.find(".quote").remove();
text.find("div[style='margin:20px; margin-top:5px; ']").remove();
text.find(".bbcode_container").remove();
text = text.text().trim();
var postDate = entry.find("td.thead");
postDate = postDate.first().text().trim();
var postUrl = entry.find("a[id^='postcount']");
if (postUrl){
postUrl = postUrl.attr('href');
postUrl = URL.resolve(url, postUrl);
}
else{
postUrl = url;
}
if (postDate.indexOf('Yesterday') >= 0){
postDate = Date.create(postDate).format('{yyyy}-{MM}-{dd} {HH}:{mm}');
}
else if (postDate.indexOf('Today') >= 0){
postDate = Date.create(postDate).format('{yyyy}-{MM}-{dd} {HH}:{mm}');
}
else{
var d = moment(postDate, 'DD-MM-YYYY, hh:mm A');
postDate = d.format('YYYY-MM-DD HH:mm');
}
var obj = {'id': id, 'title': title, 'poster': poster, 'text': text, 'url': postUrl, 'post_date' : postDate, 'location': 'Singapore', 'country': 'SG'};
arr.push(obj);
});
return arr;
}, url);
console.log("##START##");
console.log(JSON.stringify(allResults, undefined, 4));
console.log("##END##");
console.log("##URL=" + url);
fs.write("../cache/" + encodeURIComponent(url), page.content, "w");
phantom.exit();
}
}
});
这是一个循环吗?$([table[id^='post'])。每个(函数(索引)
对
这行代码是什么意思?var entry=$(this);
它将jQuery对象分配给变量条目
如何捕获id?var id=entry.attr('id')。子字符串(4);
它使用jQuery,jQuery具有
attr()
函数。谢谢,那么您的第二个响应中“this”的内容是什么?我假设它具有网页的内容否。它有一个元素。HTMLELement
具体地说,对不起,我是新手,那么“this”指的是哪个HTMLELement?