如何在APIFY中基于Start URLs为URLs打标签?求替代拆分任务的方案
Web Scraper多URL无法区分标签的优化方案
不用拆成多个任务,试试这几个更高效的方法:
自定义Page Function加标签
直接在Web Scraper的「Page function」里写JS逻辑,提前把所有需要区分的URL和对应标签做映射,抓取时自动匹配赋值。示例代码:function pageFunction(context) { // 提前定义URL与标签的对应关系 const urlTagMap = { "https://target-site.com/page-x": "分类A", "https://target-site.com/page-y": "分类B", // 批量添加所有需要区分的URL }; const currentUrl = context.request.url; // 给当前页面数据加上标签字段 return { url: currentUrl, tag: urlTagMap[currentUrl] || "默认分类", // 这里写其他需要抓取的内容,比如标题、内容等 }; }给URL加标识参数
预处理你的Start URLs,给不同组的URL加上自定义查询参数,比如把https://target-site.com/page-x改成https://target-site.com/page-x?custom_tag=分类A,然后在Web Scraper里直接抓取这个custom_tag参数作为标签,不用依赖页面结构或URL规则。通过页面特征区分标签
如果不同组的页面有独特的DOM特征(比如特定的导航栏class、页面标题关键词),可以在Page Function里通过判断这些特征来赋值标签。比如某类页面的标题都包含「教程」,就可以这么写:function pageFunction(context) { const title = document.title; let tag = "默认分类"; if (title.includes("教程")) { tag = "教程类"; } else if (title.includes("资讯")) { tag = "资讯类"; } return { url: context.request.url, tag: tag, // 其他抓取字段 }; }
内容的提问来源于stack exchange,提问作者yoni349
相关产品推荐
相关产品推荐

