Apify是一个用于爬取网页和自动化流程的开源工具和平台。阻止Apify保存已处理的请求可以通过以下方式实现:
const { Apify } = require('apify');
Apify.main(async () => {
// 创建一个RequestList对象,包含所有要处理的URL
const requestList = new Apify.RequestList({
sources: [
{ url: 'http://example.com/page1' },
{ url: 'http://example.com/page2' },
],
});
await requestList.initialize();
const crawler = new Apify.CheerioCrawler({
requestList,
// 设置请求拦截器,检查并阻止保存已处理的请求
requestInterceptors: [(request) => {
if (request.url.includes('processed')) {
throw new Error('Already processed');
}
return request;
}],
handlePageFunction: async ({ request, $ }) => {
// 处理页面的逻辑
console.log(`Processing page ${request.url}`);
},
});
await crawler.run();
});
const { Apify } = require('apify');
Apify.main(async () => {
// 创建一个RequestList对象,包含所有要处理的URL
const requestList = new Apify.RequestList({
sources: [
{ url: 'http://example.com/page1' },
{ url: 'http://example.com/page2' },
],
});
await requestList.initialize();
const crawler = new Apify.CheerioCrawler({
requestList,
// 自定义请求处理函数,在其中判断是否保存已处理的请求
handleRequestFunction: async ({ request }) => {
if (request.url.includes('processed')) {
return new Apify.Response({ body: '', contentType: 'text/html' });
}
},
handlePageFunction: async ({ request, $ }) => {
// 处理页面的逻辑
console.log(`Processing page ${request.url}`);
},
});
await crawler.run();
});
通过以上两种方式,您可以根据自己的需求来阻止Apify保存已处理的请求,并在代码中根据业务逻辑做相应的处理。请注意,以上示例代码使用Apify SDK中的CheerioCrawler类作为爬虫示例,您可以根据您的实际需求选择合适的Apify爬虫类进行使用。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云