Javascript phantomjs代码的解释

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

我被要求使用phantomjs开发网络爬虫。然而,当我通读示例时,我对一些代码感到困惑:

这是环路吗<代码>$(“表[id^='post'])。每个(函数(索引)

这行代码是什么意思?
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?