美文网首页
前端视角通过selenium实现爬虫技术(node方向)

前端视角通过selenium实现爬虫技术(node方向)

作者: 祝家庄打烊 | 来源:发表于2022-04-22 22:42 被阅读0次

之前有介绍过selenium-webdriver是基于浏览器自动化库,可以模拟用户的行为操作。利用这个自动化库可以开发两个大方向的功能,爬虫和自动化测试。今天的话,我们来讲解一下爬虫技术,这里特别注意:爬虫有风险开发需谨慎。

爬虫的介绍

爬虫是通过程序来获取网络资源,可以通过定时器定时的去爬取网络资源,而不是通过人为的方式去爬取资源。大家常用的搜索引擎就是由很多很多爬虫组成,每个爬虫都会去网络上爬取资源存储自己的数据库中供用户搜索。我们今天来讲解一个分页列表,分为2个步骤:1、模拟用户登录 2、获取列表数据

模拟用户操作

1、打开登录页面,模拟用户输入账户和密码,点击登录按钮跳转到首页

await driver.get('http://localhost:8080/#/login');
    await driver.findElement(By.xpath('//*[@id="app"]/div/div/div[1]/input')).sendKeys('123456',Key.RETURN);
    await driver.findElement(By.xpath('//*[@id="app"]/div/div/div[2]/input')).sendKeys('123456',Key.RETURN);
    await driver.findElement(By.xpath('//*[@id="app"]/div/div/button')).click();

2、模拟用户行为操作页面,使其到达想要爬取的列表页面

await driver.findElement(By.id('detail')).click();

3、获取列表当前页数据,当前页数据获取完成后模拟用户点击下一页,这样依次获取数据,直到数据全部获取完成。注意:一、可以通过获取分页总数,进行遍历来获取数据 二、通过点击下一页获取数据,直到下一页无法在点击,说明已经到最后一页

let ul = await driver.findElement(By.xpath('//*[@id="app"]/div/div[2]/ul'));
let uiItem = await ul.findElements(By.css('.number'));
let maxPage = await uiItem[uiItem.length-1].getText();
for(var i=1;i<maxPage;i++){
  let cItem = await driver.findElements(By.css('.el-table__row'));
  for(var k=0;k<cItem.length;k++){
    let c = await cItem[k].findElements(By.css('.cell'));
    let cDate = await c[0].getText();
    let cName = await c[1].getText();
    let cAddress = await c[2].getText();
    await writeSteam.write(`时间:${cDate} 名字:${cName} 地址:${cAddress}`);
    await writeSteam.write('\r\n');
   }
   await driver.sleep(1000);
   await driver.findElement(By.xpath('//*[@id="app"]/div/div[2]/button[2]')).click();
}
writeSteam.close();

相关文章

网友评论

      本文标题:前端视角通过selenium实现爬虫技术(node方向)

      本文链接:https://www.haomeiwen.com/subject/nnfoertx.html