Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 公共LinkedIn页面需要在Puppeter中进行身份验证,但它没有';t在Chrome/Chrome中手动粘贴url时_Javascript_Node.js_Google Chrome_Puppeteer_Headless Browser - Fatal编程技术网

Javascript 公共LinkedIn页面需要在Puppeter中进行身份验证,但它没有';t在Chrome/Chrome中手动粘贴url时

Javascript 公共LinkedIn页面需要在Puppeter中进行身份验证,但它没有';t在Chrome/Chrome中手动粘贴url时,javascript,node.js,google-chrome,puppeteer,headless-browser,Javascript,Node.js,Google Chrome,Puppeteer,Headless Browser,我试图使用打开Linkedin上的上市公司页面,但每次都会被重定向到身份验证表单。在Chrome或Chrome中手动粘贴URL时不会发生这种情况 代码如下: const puppeter=require(“木偶演员”); (异步()=>{ 常量url=”https://www.linkedin.com/company/google/"; const browser=wait puppeter.launch({ 无头:错, args:[ “--lang=en GB”, “--没有沙箱”, “--禁

我试图使用打开Linkedin上的上市公司页面,但每次都会被重定向到身份验证表单。在Chrome或Chrome中手动粘贴URL时不会发生这种情况

代码如下:

const puppeter=require(“木偶演员”);
(异步()=>{
常量url=”https://www.linkedin.com/company/google/";
const browser=wait puppeter.launch({
无头:错,
args:[
“--lang=en GB”,
“--没有沙箱”,
“--禁用setuid沙盒”,
“--禁用gpu”,
“--禁用开发人员shm使用”,
],
defaultViewport:null,
管道:是的,
slowMo:30,
});
const page=wait browser.newPage();
等待页面。转到(url{
waitUntil:'networkidle0',
});
wait page.waitForSelector(“.top-card-layout__entity-info-container”,{timeout:10000});
等待页面。关闭();
等待浏览器关闭();
})();
这是浏览器重定向的位置:

如果我手动粘贴URL
https://www.linkedin.com/company/google/
铬或铬合金

到目前为止,我所尝试的:

  • 使用
    incognito
    浏览器上下文:
/[…]
const context=await browser.createIncognitoBrowserContext();
const page=wait context.newPage();
// [...]
  • 用于避免被检测为机器人:
const puppeter=require(“puppeter额外”);
木偶师。使用(需要(“木偶师额外插件隐形”)();
// [...]
const randomUserAgent=require(“随机用户代理”);
// [...]
等待page.setUserAgent(randomUserAgent.getRandom());
// [...]

什么都没起作用。还有什么我可以试试的吗?

试试不同的用户代理。 就挑一个吧:

有关在Puppeter中实现用户代理的详细信息:

编辑:在尝试上述操作之前,请先尝试隐形附加组件:

原因 这是由于微软对个人资料的极端保护。如果您能够以匿名模式访问公共配置文件,我认为某些共享cookie对此负有责任,但通常情况下,由于AuthWall(在这种情况下会阻止您登录),您无法在LinkedIn上访问公共公司配置文件。对我来说,登录是必须的所有时间,甚至从非匿名窗口

数据专家约翰·考拉的一点背景:

当微软收购LinkedIn时,他们投资了数十亿美元。 他们也开始行动,很快他们就开始与刮削作斗争。 像现在著名的公司一样,由于法庭上的争斗,“HiQ实验室”利用LinkedIn的数据获取巨大利润

现在LinkedIn遇到了一个问题,即公开抓取不是一种法律犯罪,他们(像所有其他网站一样)未能阻止发展良好的公开抓取

因此LinkedIn增加并加强了一个叫做“Authwall”的功能,这是一种非常敏感的抓取检测。它很少允许来自非授权账户的任何公众意见,使得无账户的刮取变得不可能

盗用账户是一种违法行为,而且由于账户需要维护,这要困难得多。 这就是HiQ实验室和所有其他刮削公司倒闭的时候。 HiQ看到数以百万计的利润一落千丈,他们在法庭上与LinkedIn抗争

剩下的唯一一家公司是“scraping.services”,它将继续关注未来几年将要发生的事情

资料来源:

我确信,整个前木偶师团队现在都在微软工作,这一事实也不会使欺骗AuthWall变得更容易(参见:即使有了木偶师,额外的插件隐身也不会被阻止访问页面)


解决方案 访问LinkedIn页面的唯一方法是使用表单登录(或使用已登录且已具有有效会话cookie的chrome配置文件)


更新:由于使用现有帐户刮取自身内容违反了LinkedIn的规定:不建议这样做。我的上述解决方案仅适用于一次性访问(无论如何,这不是一个有效的方案)因此,最终的答案是:不可能使用Puppeter访问这些配置文件。

我复制了您提供的链接。我还第一次获得了身份验证页面。刷新后,我可以查看一次。在匿名中,我总是被要求登录。请注意,我在手机中尝试了chrome。@Rupjyoti这很奇怪,它在chrome Incognito和Safari隐姓埋名我已经尝试了隐形插件和随机用户代理(见更新的问题)。到目前为止没有任何效果(同时我在解决方案下面添加了一个警告,因为这个问题主要是那些想刮LinkedIn的人提出的)