浏览器扩展需求
需求:爬取部分平台的商家后台数据,如评论中心、广告数据等 技术:使用扩展打开一个新的浏览器窗口后,加载其网页地址后,注入脚本内容获取到dom后,提取其中关键信息,因为一个后台下会有侧边菜单(如评论中心,广告数据),所以需要控制脚本点击后到下一个页面,然后继续执行注入脚本爬取内容,完毕后在继续下一个, 注意点: 1.因为多平台的商家后台布局和菜单都不一致,无法广告数据->评论中心,这些写死顺序菜单,在多个平台爬,所以需要根据平台来配置爬取页面顺序 2.因为后台会有登录才能访问,或者是验证码撞盾,所以在这种特殊情况下时,需要告知用户,让用户手动解决后,在继续执行顺序爬取 3.在爬取页面时,存在网络加载慢,或者其他原因,导致dom出现没那么及时,所以需要做特殊处理,如一个页面过了4,5秒还没开始抓,就刷新一下页面
流程
倾向是全自动,但是如果强制跳转到登录或者撞盾或者其他等异常情况只能让用户手动解决后在开始自动了,数据的话,先只打印到控制台即可, 然后我说下扩展的交互 1.点击扩展图标后,出现一个popup,里面放一个登陆按钮,必须登录后才能用,而登录暂且先写死,点击一下后自动登录,写一个假token存储,方便后续替换真的 2.在登录后,popup中,放置一个平台选择,如shop、淘宝等等,就用你说的Manifest配置来循环,当指定后,点击立即爬取即打开一个新的浏览器窗口 3.因为扩展是必须目标网页在前台才能爬取数据,而打开新tab会导致用户不能干别的,不够自动,所以要打开新的窗口 4.爬取时的交互逻辑这样,当打开窗口后,在所有网页的右下角(包括新打开的浏览器窗口和当前的,因为我想让用户知道有东西在后台跑)都放一个按钮,显示脚本运行了多长时间即00:00即可,当鼠标点击按钮后,就在按钮那弹出一个窗口,显示这个平台的网页爬取顺序,用时间轴那样表示进度,如果爬取成功就是绿色,失败了就变成了红色,显示爬取失败这样子 5.当都完成后,3秒后自动关闭这个新的浏览器窗口 6.在爬取过程中,点击扩展按钮时的popup内容和4中的点击按钮的窗口内容一致,都显示当前爬取的进度 7.在窗口中记得显示一个取消按钮,点击后关闭窗口,取消爬取