浏览器怎样同时查找多个关键词 且标注高亮显示

        我们在浏览网页时,输入网址或点击书签,当页面加载完成后,不得已用双眼从上到下扫描网页内容,查找网页是否存在自己关注的内容,就是眼睛有点累。
        如果浏览器能自动标注页面关键词高亮显示,提示关键词所在位置,减少肉眼扫描范围,辅助浏览页面。如下图所示:
        在浏览器书签栏中,有一个【高亮关键词】按钮,鼠标点击一下即显示接下状态,浏览器会自动查找当前页面上的关键词,并使用红色加粗字体黄色背景高亮显示,若再打开其它网页或点击链接打开新网页,在新页面中无需任何操作即高亮标注关键词。 


        为实现上述效果,具体设置步骤如下:
        1、运行木头浏览器,从【自动控制】菜单打开【项目管理器】,项目管理器已新建好一个默认项目,鼠标双击【项目简介】小标题,把名字改为“高亮显示关键词”。在下面的输入框里输入需要标注的关键词,如有多个关键词以逗号隔开。

        2、新建一个定时控制器,设置每秒执行一次。即每秒检测一次页面,发现关键词即高亮标注。为什么要每秒检测一次呢?而不是页面打开后标注一次就可以了?这里主要考虑到很多响应式页面和ajax加载的页面内容,能往里完成关键词高亮标注。

        3、怎样高亮标注网页上的关键词,这是最关键的一步,通过执行JavaScript脚本代码,通过正则表达式把关键词替换成高亮显示的span元素,注意在替换时需排除已替换过的关键词。

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 matplotlib 的 event handling 来实现曲线上点击鼠标显示自定义标注的功能。具体步骤如下: 1. 导入必要的库和数据: ```python import numpy as np import matplotlib.pyplot as plt # 生成数据 x = np.linspace(0, 2*np.pi, 100) y1 = np.sin(x) y2 = np.cos(x) ``` 2. 创建一个 figure 和两个子图,并画出两条曲线: ```python # 创建 figure 和两个子图 fig, (ax1, ax2) = plt.subplots(2, 1, sharex=True) # 在第一个子图上画出第一条曲线 ax1.plot(x, y1) ax1.set_ylabel('sin(x)') # 在第二个子图上画出第二条曲线 ax2.plot(x, y2) ax2.set_ylabel('cos(x)') ax2.set_xlabel('x') ``` 3. 定义一个函数 `on_click`,用于处理鼠标点击事件。在该函数中,首先获取当前鼠标点击的坐标,并将其转换为数据坐标。然后根据数据坐标找到最近的点,并在该点上添加一个文本标注: ```python def on_click(event): if event.inaxes is not None: ax = event.inaxes x, y = event.xdata, event.ydata index = np.argmin(np.abs(x - xdata)) x_near, y_near = xdata[index], ydata[index] text = ax.text(x_near, y_near, f'({x_near:.2f}, {y_near:.2f})', fontsize=10, ha='center', va='bottom', color='red') fig.canvas.draw() ``` 在该函数中,`event.inaxes` 表示当前鼠标点击的坐标所在的子图对象,如果为 `None` 则表示鼠标点击位置不在任何一个子图对象上。`event.xdata` 和 `event.ydata` 分别表示鼠标点击位置的横坐标和纵坐标,需要将其转换为数据坐标。在这里我们没有保存每个子图对应的数据集,而是使用了前面定义的 `x` 和 `y1, y2`,因此需要在函数中先将这些数据集取出来: ```python xdata, ydata = ax.lines[0].get_data() ``` 然后使用 `np.argmin` 找到最近的点的下标,再根据下标取出该点的坐标,最后在该点上添加一个文本标注。 4. 将 `on_click` 函数绑定到 figure 上的 `button_press_event` 事件: ```python cid = fig.canvas.mpl_connect('button_press_event', on_click) ``` 5. 运行程序并点击曲线上的点,可以看到在最近的点上添加了一个文本标注。此时如果再点击其他点,则新的文本标注会覆盖之前的文本标注。如果要保留之前的文本标注,可以将每个文本标注的对象保存在一个列表中,再在 `on_click` 函数中先清除所有的文本标注,再重新添加新的文本标注: ```python # 在程序开始时定义一个空的列表 texts = [] # 修改 on_click 函数 def on_click(event): if event.inaxes is not None: ax = event.inaxes x, y = event.xdata, event.ydata index = np.argmin(np.abs(x - xdata)) x_near, y_near = xdata[index], ydata[index] # 先清除所有的文本标注 for text in texts: text.remove() texts.clear() # 添加新的文本标注 text = ax.text(x_near, y_near, f'({x_near:.2f}, {y_near:.2f})', fontsize=10, ha='center', va='bottom', color='red') texts.append(text) fig.canvas.draw() ``` 这样就可以在曲线上保留多个文本标注了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值