精华内容
下载资源
问答
  • 网页点击事件找到函数
    千次阅读
    2017-01-05 10:54:04

    本人现在有一个利用libcef的软件,想寻找网页链接点击事件的方法,又不想利用JS,因为页面太多。于是想到了这个方法,

    记录下来,以便日后再需时查看,也方便有此需求的人。

    前提是你已经编译了cef-chromium的源码,cefbuilds下载的只是已经编译好的libcef库和调用接口,

    因此得真正的编译cef和chromium的源码,才能找到解决办法。

    如果你还没编译成功,请看这篇:

    从源码编译cef-chromium的正确步骤


    当编译好cef-chromium的源码后,就可以开始找网页链接点击事件了。

    因为是点击,所以chromium源码中应该包含click事件,本人不才,是通过click这个字符串搜索的,最后居然也找到了,

    网页链接点击事件是在WebKit的html事件中处理的。

    我的cef-chromium源码在E盘,具体目录为:

    E:\cef-chromium\chromium\src\third_party\WebKit\Source\core\html\HTMLAnchorElement.cpp

    在HTMLAnchorElement.cpp中有这么一个成员函数:

    void HTMLAnchorElement::handleClick(Event* event)
    {
        event->setDefaultHandled();
    
        LocalFrame* frame = document().frame();
        if (!frame)
            return;
    
        StringBuilder url;
        url.append(stripLeadingAndTrailingHTMLSpaces(fastGetAttribute(hrefAttr)));
        appendServerMapMousePosition(url, event);
        KURL completedURL = document().completeURL(url.toString());
    
    ...

    这个handleClick成员函数便是处理网页超链接点击的方法,


    KURL completedURL = document().completeURL(url.toString());


    这个url.toString()就是点击的链接地址,在这句下面处理获取到的地址就可以了,如果不想让网页加载,直接在获取到链接地址后return即可。


    这个url.toString()返回的是String类型,它是定义在chromium内的,想转换链接地址到char*可以用这个方法:

    const char* sUtf8Data = url.toString().utf8().data();
    有一点要注意,转换后的sUtf8Data是utf8类型的字符串。

    更多相关内容
  • 本文以Chrome浏览器定位点击事件响应函数为例,介绍定位方法。 记得Firebug原来也可以类似操作的,但现在Firefox把Firebug整合到开发工具中了但开发工具又没见有这功能,“国产浏览器”们也不见有,现在感觉Chrome能...

    一、背景说明

    在前端页面调试或者渗透测试(尤其是XSS)时,我们经常想定位js函数位置;比如点击了某个位置弹出了一个对话框,这是哪个文件的哪个js函数在响应。

    本文以Chrome浏览器定位点击事件响应函数为例,介绍定位方法。

    记得Firebug原来也可以类似操作的,但现在Firefox把Firebug整合到开发工具中了但开发工具又没见有这功能,“国产浏览器”们也不见有,现在感觉Chrome能定位了。

     

    二、定位演示

    2.1 定位调用的函数

    我们点击图中“test”行,然后弹出了一个内容为“2”的窗口

    点击确定后,按“F12”调出Chrome开发者工具--激活选取箭头--选中“test”位置--下方切换到“Event Listeners”标签--展开“click”节点

     

    上图中后方链接即为点击调用的js函数的链接,点击该链接跳转到函数位置

     

    2.2 进一步定位弹窗代码位置

    上边我们只是定位到了点击调的的函数,更具体而言我们想要的是定位到弹出弹窗的代码的位置

    js进一步定位的方法和逆向时的定位方法基本是一致的:

    1)在该函数内下几个断点,点击“test”处,如果弹窗存A和B两个断点间出现那么弹出窗口的代码必定在这两个断点之间

    2)去除其他A和B之外的其他断点,当执行到A断点后执行单步步过

    3)当步过某一函数弹出窗口,说明弹出代码在该函数中;在该函数下一断点(并去除A和B两个断点),然后重新点击test处

    4)在断点位置停下后,执行单步步入,进入后执行单步步过,如此下去就能定位具体弹窗代码位置

    展开全文
  • (一)PYTHON的安装(已安装,可跳过此不步骤) 1、PYTHON下载 PYTHON官网:https://www.python.org/ 按照对应的系统下载,我这里是window系统,点击windows,根据自己系统操作位数下载 ...

    (一)PYTHON的安装(已安装,可跳过此步骤)

            1、PYTHON下载

                    PYTHON官网:https://www.python.org/

                    

                  按照对应的系统下载,我这里是window系统,点击windows,根据自己系统操作位数下载

                    

                                添加环境变量:

                                    

                                如果没有添加,可自行在计算机添加

                                        

    (二)第三方库的安装

              安装selenium和pyquery,在cmd命令下输入 pip install selenium(pyquery安装类似)

                    

              如果报错则进入python目录下scripts目录下,再输入命令

                  

            在python的IDLE下如果没有报错则安装成功

                  

    (三)浏览器及相应浏览器驱动的安装

          这里主要使用chrome浏览器,自行去谷歌官网下载安装,安装后查看谷歌版本,单击关于google chrome

        (一般在这里都可以找到)

                    

             我的版本:67.0

                                        

            下载对应的webdriver  (这里没有可以自己推测每3个版本,对应一个v65-67---v2.38,即v68-70--v2.39)

            下载地址:http://chromedriver.storage.googleapis.com/index.html

          

          

         把下载好的chromedriver.exe,解压后放到python36目录下(或者python36目录下的scripts) 

                

             在IDLE下执行如下代码,会自动打开你谷歌浏览器(环境搭建完成)

                         

    (四)实例代码详解

              要求:爬取https://www.xuangubao.cn/股票网站的信息((“利好”或“利空”)和“相关股票”),实现点击加载更多

             

          (1)打开浏览器,获取相关讯息:

                    

         (2)网页分析(selenium有很多定位方法,这里用到比较少)

                在上面的代码中,data已经拥有了网页当前页的所有内容(可输出观察);我们现在只要从中拿到我们想要的数据

                在网页中,右键,审查元素,(或者检查)分析网页:(由于得到的data可能与网页的分析有所出入,建议最好输出data,从data中分析得到正则表达式

               

               我们用正则表达式找到所有以1开头,以2为结尾内容用findall函数

                    

       实现点击:(点击之后的”利好”和“相关股票”的正则会与首页的不同(后面点击的与第一次点击后的一样))

          定位方法有:(这里用的比较少不做详细介绍,大家自行了解):  

                     find_element_by_id  当你知道一个元素的id属性时使用它。使用此策略,将返回具有与该位置匹配的id属性值的第一个元素。
                     find_element_by_name  当你知道一个元素的name属性时使用它。使用此策略,将返回具有与该位置匹配的id属性值的第一个元素。
                     find_element_by_xpath
                     find_element_by_link_text
                    find_element_by_partial_link_text
                    find_element_by_tag_name
                    find_element_by_class_name
                   find_element_by_css_selector



        源码附上:

    #coding=utf-8
    from selenium import webdriver
    import time
    import re
    from pyquery import PyQuery as pq




    def openurl(url,num):
            browser  = webdriver.Chrome()  #打开浏览器
            browser.get(url)               #进入相关网站
            html=browser.page_source       #获取网站源码
            data=str(pq(html))             #str() 函数将对象转化为适于人阅读的形式。
                                                                                                                  
            dic={}                         
            re_rule=r'<div class="news-item-container">(.*?)<div data-v-00b2e9bc=""/>'       
            datalist=re.findall(re_rule,data,re.S)
            for i in range(0,len(datalist)):
                    rule1=r'<img src="/img/icon-lihao.png" data-v-6c26747a=""/>(.*?)<!----></span>'
                    bullish = re.findall(rule1,datalist[i],re.S)
                    if len(bullish)==0:
                            rule1=r'<img src="/img/icon-likong.png" data-v-6c26747a=""/>(.*?)</span>'
                            bullish = re.findall(rule1,datalist[i],re.S)
                            
                    rule2=r'<span class="stock-group-item-name" data-v-f97d9694="">(.*?)</span>'
                    stock_name=re.findall(rule2,datalist[i], re.S)
                    
                    if len(stock_name) > 0 and len( bullish) > 0:
                            for c in range(0,len(stock_name)):
                                    dic[stock_name[c]]= bullish[0]
                                    print("正在爬取第",len(dic)+1,"个请稍等.....") 
                  
            c=len(datalist)
            if len(dic) < num:
                    while(1):
                            browser.find_element_by_class_name("home-news-footer").click()
                            time.sleep(1)
                            html=browser.page_source
                            data=str(pq(html))
                            datalist=re.findall(re_rule,data,re.S)
                            for i in range(c,len(datalist)):
                                    rule3=r'<img data-v-6c26747a="" src="/img/icon-lihao.png"/>(.*?)<!----></span>'
                                    bullish = re.findall(rule3,datalist[i],re.S)
                                    if len(bullish)==0:
                                            rule5=r'<img data-v-6c26747a="" src="/img/icon-likong.png"/>(.*?)</span>'
                                            bullish = re.findall(rule5,datalist[i],re.S)
                                    rule4=r'<span data-v-f97d9694="" class="stock-group-item-name">(.*?)</span>'
                                    stock_name=re.findall(rule4,datalist[i], re.S)
                                                    
                                    if len(stock_name) > 0 and len( bullish) > 0:
                                            for c in range(0,len(stock_name)):
                                                    dic[stock_name[c]]= bullish[0]
                                                    
                                
                            c=len(datalist)
                            if len(dic) > num :
                                    browser.quit()
                                    print("爬取完毕!!")
                                    break


                            print("正在爬取第",len(dic)+1,"个请稍等.....")   
            else:
                    browser.quit()
                    print("爬取完毕!!")
                    
            return dic
                                                                             
    url='https://www.xuangubao.cn/'
    dict=openurl(url,3)
    print(dict)
    #f=open("F:\\text.txt","a")
    #for key,values in  dict.items():
            #f.write((key+"\t"))
            #print(key,values)
    #f.close()     

    展开全文
  • 想到一个思路是:点击网页上的删除按钮,应该是调用了一个什么函数,才执行的删除,而且附带了一些参数,可是怎么找也没找到提交的入口在哪 希望大神帮忙指定迷津 下面图片中用箭头指出了要操作的元素,其中包含...
  • javascript按钮点击事件

    千次阅读 2021-06-12 17:26:33
    给按钮绑定上述函数点击实现javascript按钮单击事件如何传入参数设置日 js里: function setDate(th){ var btid=th.id; ... }js怎样让点击a按钮就相当于点击b按钮?b按钮里有点击事件,怎样写让鼠标点击a...

    javascript 点击按钮触发事件

    使用onclick()点击事件触发。

    设计一个功能页面,HTML代码如下。

    a83515a5233b218b6b501c9a1f58735f.png

    设计功能函数,实现上图中赋值的功能。

    给按钮绑定上述函数,点击实现

    javascript按钮单击事件如何传入参数

    设置日 js里: function setDate(th){ var btid=th.id; ... }

    js怎样让点击a按钮就相当于点击b按钮?

    b按钮里有点击事件,怎样写让鼠标点击a按钮就相当于点击b按钮的效果?而 New Document a1 b1

    点击后执行start(),再次点击关闭start(),思路是在外面套一个父函数,var toggole = true;function start() { if (toggole) { // 单数次点击,你想干什么 } else { // 偶数次点击,你又想干什么 } toggole = 。

    javascript 点击按钮展开div 再次点击关闭 怎么写javascript 点击按钮展开div 再次点击关闭 怎么写点击事件啊 让他一个按JavaScript var i =1;function trigger(){ var mydiv = document.getElementById("mydiv"); if(i%2==1){ mydiv.style.display='block'; } if(i%2==0){ mydiv.style.display='none'; } i++;}jQuery更简单,稍稍百度一下就可以找到了.或者在w3c找jQ

    js点击单选按钮后点击button按钮时才发生事件(CSS布局HTML小编今天和大家分享

    function myfun1(){//设置表单属性 //如果对[单选按钮]进行了选择就执行 if(myform2.button2.value){ myform.formname.value=myform.name; myform.formmethod.value=myform.method; myform.formaction.value=myform.action; myform.formlength

    点击按钮(BUTTON)执行PHP语句

    展开全文
  • 半天找不到按钮跳转的点击事件在哪里 使用chrome浏览器进行js调试找出元素绑定的点击事件 链接: https://www.cnblogs.com/itjeff/p/11692342.html.
  • chrome开发者模式中跟踪点击事件

    千次阅读 2021-07-14 21:40:11
    当我们想了解一个陌生网页中某个按钮的点击事件内部逻辑时,该如何快速查找呢? 其实,chrome已经考虑了这一点,可以在开发者模式中跟踪某一类事件,方法是:在Elements页签下,首先选中某个具有事件的组件(例如...
  • 在该系统中,可以通过点击左侧的菜单(导航栏)来实现右边内容的切换。而且内容区的页面都是嵌套在 iframe 框架中的。 前提: iframe 嵌套的某个页面中有一个 &amp;amp;amp;lt;a&amp;amp;amp;gt; 标签。如:...
  • JS脚本实现网页自动秒杀点击

    千次阅读 2021-03-09 22:25:17
    如何放到浏览器 浏览器打开活动页面,按F12进入调试模式,找到Console控制台,将上面js脚本标签内的代码粘贴进去(不要首尾标签),点击回车即可,一定要在活动结束前放进去。 结果预览 修改setInterval(function()...
  • 1、js来监控复制粘贴、js监听复制粘贴事件 ... 2、移除页面上绑定的事件 实际案例:有些网站(例如CSDN)复制过来的...方法2、找到copy事件在哪个元素节点调用的,跳出这个节点再复制就不会触发copy事件。 扩展...
  • 百度地图点击触发事件介绍

    万次阅读 2018-06-18 15:30:06
    这个事件是marker中的事件,但是marker事件是可以应用于全局的,然后我们在所有的地图上点击,都可以使用这个事件来获取。 然后,我们看到的事件,也就是marker中的事件,从网站的网页中类参考的覆盖物类我们可以...
  • UE4 Widget点击事件的触发

    万次阅读 2018-09-01 16:08:45
    1)创建一个widget,并且向其拖放控件,设定按钮的点击事件 ...4)在Widget中设置点击事件的接口,首先找到该接口,然后找到当中的接口函数。 5)找到一个BP类,设置接口函数相应方法     总结: 在wi...
  • 例如我想看:https://www.e-cology.com.cn/的登录页面,登录按钮的事件 ...这里可以直观的看到这里onclick调用了checkall()函数(执行第三操作), 或者点击3.1可以看到这里的click函数点击4即可跳转到这...
  • 前端div中添加一个onClick事件点击后偶尔会出现点击事件不成功,并...依次解决完成发现还是会莫名其妙刷新一下,找到位置=======需要让点击事件不再刷新 HTML: <div onclick="show(data);return false;".
  • 具体来说,就是在使用基于Webkit引擎的封装组件wke的过程中,需要把一个易语言函数注册给JavaScript引擎,让它可以在网页里被调用(就像在网页里调用普通JavaScript函数一样)。如果能做到这一点,就基本实现了从...
  •  QQ浏览器禁用了视频自动播放功能,以实现视频预加载功能:QQ浏览器在视频播放时为了实现视频秒开效果(就是一点击页面里的播放按钮就立即开始播放,而不出现loading界面),禁用了页面视频自动播放的功能,包括...
  • 如何实现网页中按钮的自动点击

    万次阅读 多人点赞 2020-06-25 15:44:14
    使用Chrome浏览器,右击目标按钮,点击“检查”,有的浏览器也叫“审查元素”,找到目标按钮的id,例如百度的按钮是: <input type="submit" id="su" value="百度一下" class="bg s_btn"> 此处id就是su。 在...
  • 原文链接:点击打开链接摘要: 在分析一些网页的时候,经常会发现点击某个按钮会触发某个动作,当页面比较复杂,包含的js文件又多,这时候要找到这段触发函数的代码写在哪里就比较困难。比如,在某个html页面中,...
  • 只需要通过chrome浏览器以下三个功能就可以轻松找到绑定事件了。 1.Sources(源码) 2.Event Listener Breakpoints(事件监听断点) 3.Call Stack(函数调用栈) 举个栗子: 1.打开某网站,按F12,切换到Sources...
  • excel里减法函数是哪个?减法:IMSUB--为减数(一般减法,直接用-符号,...2、现需要把该列金额相加在B9单元格输入sum函数找到sum函数,然后点击;3、根据sum函数,选择需求和的区域B2到B8,然后按enter键;4、就...
  • 百度地图覆盖物点击事件

    万次阅读 2018-01-21 16:39:43
    最近在项目中使用百度地图的自定义覆盖物时发现在手机浏览器下click无法触发,虽然有touchstart...下面的代码我简单地定义了一个红色矩形div,给它一个click事件,添加到地图中 body, html { width: 100
  • html调用外部js中的函数显示未定义

    千次阅读 2021-06-18 08:05:53
    调用外部js函数的時候发现出现未定义的错误。无外乎两种情况:一种就是路径问题,一开始我也以为是我的路径有问题,事实上不是这样,路径这个问题只有特别粗心的人才会犯的错,我仔细核对之后发现并不是路径的原因。...
  • 利用腾讯云函数实现自动化签到

    千次阅读 热门讨论 2021-11-25 09:48:46
    函数本来是给开发者和企业用的,不过因为他能运行代码,加上定时运行的特性,很快就被人挖掘出新的用途。 今天要说的自动化签到,如果我们把签到那些App的代码复制到云函数上,并设置每天运行一次,这事儿不就成了...
  • 模拟点击网页按钮

    千次阅读 2017-12-27 10:59:43
     在我们编写的程序中,如果想要实现对浏览器打开的网页进行监视、模拟操纵、动态提取用户输入、动态修改......等功能,那么请你抽出宝贵的时间,继续往下阅读。本文介绍的知识和示例程序都是围绕如何遍历 H
  • 如何查看python函数的源码

    千次阅读 2021-02-07 14:34:07
    方法一、ctrl + 点击函数名 在Pycharm中,按住Ctrl,用鼠标点击函数 如果点击后,跳转到的地方仅仅是一堆解释说明,这表明该函数是基于C语言实现的,那么跳转到方法三 方法二、明确函数处于哪个模块 首先需要...
  • 交叉熵代价函数详解

    千次阅读 2019-03-18 23:28:38
    点击右下角的"Run",我们来看一下神经元是如何学习来让输出结果接近0.0的(译者注:观看交互式动画请前往原作网页)。注意这不是预先录制好的动画,你的浏览器能够真正地去计算梯度,然后用梯度值去更新权重和偏置,...
  • 用户在浏览网页的时候,需要与网页进行交互,常用的操作如滑动、捏合网页,以及点击网页中的链接等。这些交互操作也称为用户输入事件,浏览器需要对它们作出迅速的响应,例如及时更新网页内容或者打开新的网页等。...
  • 1.按键操作 from selenium.webdriver.common.keys import Keys from selenium import webdriver import time driver = webdriver.Firefox() ...time.sleep(3) # 找到输入框 并且输入指定内容 driv...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 64,219
精华内容 25,687
关键字:

网页点击事件找到函数