当前位置:首页 > 其它 > 正文内容

puppeteer 如何避免爬取网站需要重复登录的情况

hxing6411年前 (2024-03-21)其它5204

问题:

当我们爬取某个网站时,有些网站可能需要登录才能获取到数据,但是当我们通过 puppeteer 启动浏览器后,发现浏览器的登录信息不存在了,即使你在打开后手动登录了网站,当你重新启动程序后,又需要重新登录,导致我们没办法获取到这个网站数据。

解决方案:

我们可以把 启动浏览器 和 应用程序的动作分开。

Chrome浏览器是支持远程调试模式的。Puppeteer 可以通过websocket连接chrome浏览器

实现步骤:

  1.  找到Chrome安装路径

    浏览器地址输入 chrome://version 如下图,把这个地址复制,如下图

    image.png

  2. CMD命令行中输入  C:\Program Files\Google\Chrome\Application\chrome --remote-debugging-port=8888  ,  端口改成你想监听的端口,当然如果配置了环境变量的话可以直接输入 chrome --remote-debugging-port=8888

  3. 测试端口是否已经被监听

Bash
netstat -ano | findstr :8888

image.png

如果出现上图表明已经监听好了

4. 打开网址:http://127.0.0.1:8888/json/version,出现下图,记住该webSocket地址

image.png

5. 代码链接Chrome浏览器

JavaScript
const puppeteer = require('puppeteer-core')
var address = 'ws://127.0.0.1:8888/devtools/browser/6664816b-f32b-44b2-998b-9a59e4b3a714'  // 复制刚才的地址
const browser = await puppeteer.connect({
    browserWSEndpoint: address,
});
const page = await browser.newPage();
await page.goto('http://www.baidu.com')


以上示例代码,启动后将打开百度页面,并且会保存你的登录信息,大功告成啦!希望对您有帮助,感谢阅读!

扫描二维码推送至手机访问。

版权声明:本文由星星博客发布,如需转载请注明出处。

本文链接:http://xingxinghan.cn/?id=523

“puppeteer 如何避免爬取网站需要重复登录的情况” 的相关文章

阿里云解析域名教程

阿里云解析域名教程阿里云解析域名是一项非常重要的工作,它可以为我们的网站或应用程序提供稳定、高效、可靠的服务。作为一名网站或应用程序的运维人员,你需要通过阿里云管理控制台来掌握这项技能。下面是一份详细的阿里云解析域名教程,希望能够帮助到您。步骤一:进入阿里云管理控制台首先,您需要登录阿里云管理控制台...

微擎项目运行

微擎项目运行

进入宝塔linux面板点击左侧网站->添加站点选择对应选项,完成后打开网站目录地址打开微擎官网,下载安装文件  https://s.w7.cc/store-static-install.html  选择离线版安装,然后下载文件下载后解压出一个install.php文件上传到...

winar命令行解压/压缩文件操作

解压文件:WinRAR x test.rar /test以上命令执行将 test.rar 解压到 test 文件夹中压缩文件:WinRAR a -afzip test.zip test这个命令将文件夹 foldername 压缩成...

使用PHP8.2.9后,程序报错  could not find driver

使用PHP8.2.9后,程序报错 could not find driver

今天换了PHP版本后,运行项目出现 could not find driver解决思路:打开php.ini文件,检查配置文件中是否有  extension=pdo_mysql  是否已经打开php.ini 中 查找 extension_dir属性是否正确,检查...

SwitchyOmega谷歌扩展文件下载后会被浏览器自动删除

SwitchyOmega谷歌扩展文件下载后会被浏览器自动删除

下载SwitchyOmega后会被浏览器自动删除,如下图所示,下载地址  https://github.com/FelisCatus/SwitchyOmega/releases解决方案:打开浏览器(以Chrome浏览器为例),进入设置把上图的“下载前询问每个文件的保存位置”勾选上,如下图&...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。