我对这个Jquery提取很新。我现在的问题是让我提取的链接自动点击Chrome控制台中的代码。我使用下面的代码来获取href中的链接,但click(),trigger('click')
函数在这种情况下不起作用。有人能提出一些建议吗?提前致谢
$('.agent-info').find('a').href.trigger('click')
答案 0 :(得分:1)
请改用$(".agent-info a").trigger("click");
。这是一个简单的例子:
$(document).on("click", ".agent-info a", function(){
$(this).text("It works!");
});
$(document).ready(function(){
$(".agent-info a").trigger("click");
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="agent-info">
<a href="#">Click me 1</a>
<a href="#">Click me 2</a>
<a href="#">Click me 3</a>
</div>
&#13;
答案 1 :(得分:0)
您可以使用NodeJ中的request
和cheerio
模块加载页面内容并获取所有正文。
let request = require('request'),
cheerio = require('cheerio'),
q = require('q')
您需要一个获取url
并加载页面的函数
function loadPage(url) {
var deferred = q.defer();
request.get({
url: url,
timeout: 60000
},
function (error, response, body) {
if (!error) {
deferred.resolve(body);
}
else {
deferred.reject(error);
}
}
);
return deferred.promise;
}
您需要找到正文中的所有链接。为此使用像这样的函数
function extractLinks(body) {
var deferred = q.defer(),
$ = cheerio.load(body),
links = [];
$(/*Your selector*/).each(function() {
// add links to links array
});
deferred.resolve(links);
return deferred.promise;
}
然后你必须再次加载links
数组中每个项目的正文。因此,再次使用loadPage
模块。还有一个函数使用cheerio
来提取新页面的数据。
loadPage(firstUrl)
.then(function(result){
extractLinks(result)
.then(function(res){
var arr = [];
for(var r in res) {
arr.push(loadPage(res[r]));
q.all(arr)
.then()
.catch();
}
});
})
.catch(function(error) {
console.log(error);
});