需求
最近负责一些爬虫的抓取,但是大网站的登录很麻烦,请求参数众多,碰到一些公司的cookie是由js生成的,但是js经过了混淆和加密,再加上自己是Java后端程序员,前端能力确实薄弱,因此直接解析js获取cookie难度太大,所以只能通过浏览器驱动来完成登录获取cookie。
selemium
由于是Java程序员,selemium可以说是比较常用的方法了,对于一般的网站也够用了。
使用方法:
下载浏览器对应的浏览器驱动,放在浏览器exe相同目录下。
示例代码:
System.setProperty("浏览器驱动绝对路径\\chromedriver.exe"));
ChromeDriver driver = null;
try{
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless"); //无浏览器模式
//添加多个参数
driver = new ChromeDriver(options);//实例化
//执行的代码。。。
}catch(Exception e){
e.printStackTrace();
}finally{
//使用完毕,关闭webDriver
if(driver!= null){
driver.quit();
}
}
但是碰到一个大网站对于selemium的监测很严格,通过配置各种浏览器参数都不能通过其监测,实在没办法,只能另辟蹊径,看到网上说puppeteer可能比selemium隐蔽性更强,因此尝试使用Python解决(后来知道Java也有puppeteer,Jvppeteer,只不过都是后话了)。
pyppeteer
这个东西是基于node.js的,因此需要先安装node.js,安装Python,我安装的Python3.8,安装过程自行百度,很简单。
使用方法:
在python文件中导入相应的模块即可。
示例代码:
import asyncio
import pyppeteer