简介

超级鼓励师是一款vscode插件,基于百度图片搜索服务,根据用户设置的关键字获取图片。并通过webview展示给用户。缓解程序猿/媛工作压力,给予你爱的鼓励。

vscode 插件市场搜索超级鼓励师立即使用

源码地址:github.com/weiweiwei25…

效果图:

广告做完了 说正事:P


百度搜索请求解析

  1. 百度图片请求 打开百度图片网站或在搜索页面切换请求可以在开发者工具,network看到xhr请求 image.baidu.com/search/acjs…

    由于存在跨域限制,所以前端无法直接通过GET请求获取返回值。而vscode自带node环境,通过服务端访问就避免了跨域问题。通过node服务将获取的图片保存到本地,可以实现在没有网络的情况下工作。

    部分请求参数解析:

    • queryword和word 为搜索关键字 主要需要encodeURI编码
    • offset 偏移量 从第几张还是获取
    • rn 获取图片数量
    • hd 是否获取高清
    • lm 6为获取动图 1为获取正常 图片

其他的参数可通过不断更改网站参数,对比url自己探索。

返回参数主要看data,它包含图片的各种信息:

其中hoverURL,middleURL,thumbURL的值很多时候是相同的,可以选取其一。

注意: 这个地址是预览图片地址,图片真正的地址保存在objURL中,经过百度加密过。后面有详细说明。

实例数据:objURL: "ippr_z2C$qAzdH3FAzdH3Ft42n_z&e3B17tpwg2_z&e3Bv54AzdH3F7rs5w1fAzdH3Ftpj4AzdH3Fda8mamAzdH3Fd9AzdH3Fda8mamd9da9bc8_pQgti_z&e3B3rj2"

  1. 获取百度动图

当通过百度搜索动图的时候,你会发现很多图并不动,只有悬浮时才会加载真正的动图。通过查看data.thumbUrl的图片发现是静止的,而且资源很小。可以进一步证实。

探索之路开始:

  1. 通过悬浮功能,查看dom变化,发现image src发生改变,外层li增加class hactive。
  1. 全局搜索hactive,sources只可以单文件搜索(也可能我见识浅陋)有由于百度加载文件较多,这样搜索会死人的。可以通过network ctrl+F从所以通过网络获取资源中搜索。这样就相当与全局搜索。如果有需要可以根据资源路径找到源码,断点调试。
  2. 找到 data-objURL属性
  1. 找到 objURL 属性 解析后
  1. 百度检索 存在没有与时俱进的问题 百度返回的JSON数据解析返回的objURL

  2. 再次搜索映射关键字,找到uncompile源码 授之以鱼不如授之以渔 再也不用担心百度修改编码了

通过解码后的objURL就可以获取真实地址。

[测试地址](github.com/weiweiwei25…

自然时间鼓励

超级鼓励师支持自然时间(整点,半点)鼓励。采用node-cron 详情请参考最后链接

vscode 插件开发注意点

  • 监控属性变化
vscode.workspace.onDidChangeConfiguration(function(event) {Promise.resolve(event.affectsConfiguration('superencourager.type')).then(data => {if (data) {//true 代表这个属性已经被修改timeMeter = undefinedinitTimer(context)}}).then(undefined, err => {console.error('err', err)})})
复制代码
  • output输出
let out;
if (!out) {out = vscode.window.createOutputChannel('super encourager')out.show()}out.appendLine(msg)
复制代码
  • 属性类型设置为number 但是在window下读取是 string 记得转型。

有些入门博客也不错,请看参考链接

插件基本都是开源的,有啥需要的功能直接去找已经实现该功能的插件源码就行。我参考了很多LeetCode的代码

插件开发注意事项

参考链接

制作爬虫爬取百度图片

百度返回的JSON数据解析返回的objURL

node-cron github地址

vscode 扩展开发从入门到颈椎病康复

VSCode插件开发全攻略

vscode-extentions 官网

LeetCode github地址

转载于:https://juejin.im/post/5d4d138951882575595c44e0

基于百度图片搜索的vscode插件——超级鼓励师相关推荐

  1. Android建立网络连接,利用JSON数据获取百度图片搜索结果及GSON的简单使用

    1.建立网络连接的基本方式 Android中建立网络连接最主要的方式是利用HttpURLConnection,示例如下: public class HttpUtil {public static by ...

  2. 百度图片搜索搜出大量色情图片,原因不明

    访客Oculi同学在百度图片搜索上搜索关键字"gif"与"jpg"时发现,返回的搜索结果中出现了大量的色情图片. 不知百度一向宣称的过滤技术,在此时为何不能发挥 ...

  3. Python爬取百度图片搜索结果

    爬取百度图片搜索的图片,我们先需要分析其访问 URL,我们在搜索页面,比如搜索 "abc" ,打开 F12 调试,下拉结果页面页,查看网络请求,在其中我们可以找到这样一个请求 ht ...

  4. 如何利用百度图片搜索进行引流?原理是怎样的?

    究竟百度图片搜索如何运作?其实它的运作原理与搜索引擎很类似,一样会经过以下三个步骤: 爬取 Crawling 索引 Indexing 排序 Ranking 百度图片蜘蛛会先去爬取网络上各个网站的图片, ...

  5. 寻找百度图片搜索接口--three

    我是怎么破解他的objurl的呢,其实怎么破解是还是百度自己告诉我的...你想啊,他为啥能在开始我看到的那个js 中显示成正常的url地址呢?为什么url中的objurl 知识编码了一下 :  /   ...

  6. python爬虫百度图片搜索_python 爬虫百度图片之列表图

    一.爬虫准备 语言:python 浏览器:google chrome 工具:request模块 首先我们在百度图片搜索页面输入需要搜索的关键词(比如:明星)页面结果如下 image.png 按F12进 ...

  7. 基于百度翻译API的node插件

    基于百度翻译API的node插件 背景 做过国际化的项目就明白要把每处的文案翻译成不同的语言版本,如果只是一点点,自己去百度上翻译成对应语言版本,copy过来就ok了,但是如果这个项目文案特别多的话, ...

  8. android网络图片搜索——基于百度图片搜索引擎

    最近无聊看了一下百度的图片搜索接口,于是想着利用这些接口写了个android版的图片搜索引擎.本来不打算写的,就当纪念一下晴雪吧.. 实现效果图      主要是利用百度的图片搜索引擎返回的代码进行解 ...

  9. 【Python】爬虫入门6:爬取百度图片搜索结果(基于关键字爬图)

    源代码 #!/usr/bin/env python # -*- coding: UTF-8 -*-# 需求:爬取百度图片# noinspection PyUnresolvedReferences im ...

最新文章

  1. Csharp: FreeTextbox 编辑器控件运行时错误: 'FTB_ResizeGalleryArea' 未定义
  2. WPF中实现文件夹对话框(OpenFileDialog in WPF)
  3. [CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识
  4. 嵌入式Linux系统编程学习之二十八线程的等待退出
  5. Android深入浅出系列之Android开发环境搭建—SDK(三)
  6. java获取inputstream_Java:我怎样才能从inputStream获取编码?
  7. AD16修改规则加宽电源线与地线
  8. 前后端分离项目session跨域失效的解决方案
  9. Axure 8.1.0.3382 激活码(转)
  10. 【病毒查杀】CAD杀毒方法
  11. WPS复选框显示太阳问题解决方法
  12. win10休眠_Win10关机后一动键盘就开机怎么解决
  13. Operator学习笔记
  14. 台式计算机能不能安装蓝牙驱动,台式电脑蓝牙驱动安装失败怎么办?台式电脑蓝牙驱动安装失败解决办法...
  15. Lightoj1009 Back to Underworld(带权并查集)
  16. java 计算年龄_Java根据日期计算年龄——精确到天
  17. 微信用户绑定java实例_第三方网站微信登录java代码实现
  18. 简单的rpg任务制作
  19. p2p断开的两种情况:WLAN_REASON_DISASSOC_DUE_TO_INACTIVITY(4)和WLAN_REASON_DEAUTH_LEAVING(3)
  20. 我的三年Android开发总结之回忆过去

热门文章

  1. HC32F460之时钟(晶振)设置
  2. LabVIEWCompactRIO 开发指南6
  3. Week1.7-盈利率/效率指标-酒店房间
  4. Ubuntu22.04中root用户下依然权限不够,执行不了可执行文件
  5. 执行linux 脚本的时候提示没有权限
  6. 几何画板手机版_几何画板手机版
  7. 电影-非常人贩(3)
  8. 工程伦理--10.1 职业美德
  9. linux查看硬件使用时间,linux服务器查看硬盘使用时间
  10. Java中利用企业QQ邮箱发送邮件