我有一个我想抓取的 URL 列表,所以我把它放在startUrls
这样的位置
"startUrls": [
{
"url": "https://www.example.com/sample#000000",
"method": "GET"
},
{
"url": "https://www.example.com/sample#111111",
"method": "GET"
}
]
pageFunction
这是我的代码的摘录。
async function pageFunction(context) {
const { request } = context;
var name;
try {
name = document.querySelector('h1').textContent;
} catch (e) {
name = "null";
}
return {
link: request.url,
name
};
}
它适用于可以通过域或路径区分的 URL。但是,如果唯一的区别在于片段,则只处理第一个 URL,因为第二个 URL 被认为是重复的,因此被跳过。
我试过在第二行添加这段代码pageFunction
await context.enqueueRequest({
url: context.request.url,
keepUrlFragment: true,
});
但它会导致另一个问题,即它会为每个 URL 生成重复的结果。
那么我应该怎么做才能使它正常工作呢?除了调用enqueueRequest
设置keepUrlFragment
to之外,还有其他方法true
吗?