This commit is contained in:
zhu
2026-04-30 10:55:03 +08:00
commit 48ce6a8b0b
27 changed files with 2970 additions and 0 deletions

23
README.md Normal file
View File

@@ -0,0 +1,23 @@
# 浏览器扩展需求
需求:爬取部分平台的商家后台数据,如评论中心、广告数据等
技术使用扩展打开一个新的浏览器窗口后加载其网页地址后注入脚本内容获取到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.在窗口中记得显示一个取消按钮,点击后关闭窗口,取消爬取
# 具体代码实现流程
请阅读./step.md文档并严格按照步骤进行执行