精华内容
下载资源
问答
  • 想到一个思路是:点击网页上的删除按钮,应该是调用了一个什么函数,才执行的删除,而且附带了一些参数,可是怎么找也没找到提交的入口在哪 希望大神帮忙指定迷津 下面图片中用箭头指出了要操作的元素,其中包含...
  • (一)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()     

    展开全文
  • 本人现在有一个利用libcef的软件,想寻找网页链接点击事件的方法,又不想利用JS,因为页面太多。于是想到了这个方法, 记录下来,以便日后再需时查看即可,也方便有此需求的人。 前提是你已经编译了cef-chromium的...

    本人现在有一个利用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类型的字符串。

    展开全文
  • 如何最快速的找到页面某一元素所绑定的点击事件,并查看js代码

    比如我要查看银行账号这个标签所绑定的事件。


    操作过程中使用的是谷歌浏览器

    第一步:在该元素上右键→检查


    第二步:点击Event Listeners


    这样就能看到该元素绑定的所有事件了


    第三步:展开click,我们可以看到该元素所绑定点击事件的方法就在

    jquery-ui-1.8.16.custom.min.js的第46行和

    distribute.js的第12行


    第四步:分别点击进去

    光标停留处就是触发点击事件时执行的方法



    如果想直接打开该js文件并修改代码,可以使用快捷键Ctrl+Shift+R(打开资源),并输入对应的文件名查询即可。


    补充一点

    如果Event Listeners窗口中什么都没有,那就是该元素没有绑定任何事件。


    那为啥点击它却跳转了呢,因为它就是个单纯的a链接啊



    但是如果Event Listeners窗口还是什么都没有,那就是应该请缓存了,Ctrl+H



    第一次写博客,如果对你有帮助就请支持下,随意转载,随意转载。


    展开全文
  • PC端微信浏览器js点击事件失效

    千次阅读 2019-01-09 14:39:20
    **电脑端微信浏览器js点击事件失效** 前段时间发现开发的一个微信公众号上一个... 后来查看其它的页面的同样的点击事件是正常的,对比两个差别发现可以用的点击事件函数没有默认值,不能用的点击事件函数有默认值...
                                                   **电脑端微信浏览器js点击事件失效**
      前段时间发现开发的一个微信公众号上一个按钮的点击事件在手机上是正常的,电脑端手机微信里却不起作用。
      在网上找了好久都没有找到解决办法。
      后来查看其它的页面的同样的点击事件是正常的,对比两个差别发现可以用的点击事件的函数没有默认值,
      不能用的点击事件函数有默认值,想到难道是函数有默认值的关系,
      后来修改函数为没有默认值测试一下奇迹出现了可以使用了。
      总结:微信电脑端浏览器不支持含有默认值的函数。
    
    展开全文
  • 原文链接:点击打开链接摘要: 在分析一些网页的时候,经常会发现点击某个按钮会触发某个动作,当页面比较复杂,包含的js文件又多,这时候要找到这段触发函数的代码写在哪里就比较困难。比如,在某个html页面中,...
  • 具体来说,就是在使用基于Webkit引擎的封装组件wke的过程中,需要把一个易语言函数注册给JavaScript引擎,让它可以在网页里被调用(就像在网页里调用普通JavaScript函数一样)。如果能做到这一点,就基本实现了从...
  • 用户在浏览网页的时候,需要与网页进行交互,常用的操作如滑动、捏合网页,以及点击网页中的链接等。这些交互操作也称为用户输入事件,浏览器需要对它们作出迅速的响应,例如及时更新网页内容或者打开新的网页等。...
  • 用Qt实现网页刷新功能 前言 在上一篇博客Qt:使用Qt实现网页自动刷新工具,使用了PostMassage函数 通过...这节我们使用mouse_event鼠标模拟函数和keybd_event键盘模拟函数继续来实现网页刷新功能。 界面 界...
  • 模拟点击网页按钮

    千次阅读 2013-10-05 23:10:40
     在我们编写的程序中,如果想要实现对浏览器打开的网页进行监视、模拟操纵、动态提取用户输入、动态修改......等功能,那么请你抽出宝贵的时间,继续往下阅读。本文介绍的知识和示例程序都是围绕如何遍历 HTML 中的...
  • “工欲善其事,必先利其器” 恩,这句话我觉得说的特别有道理,下面这篇文章主要给大家介绍了关于利用chrome浏览器进行js调试并找出元素绑定的点击事件的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以...
  •  QQ浏览器禁用了视频自动播放功能,以实现视频预加载功能:QQ浏览器在视频播放时为了实现视频秒开效果(就是一点击页面里的播放按钮就立即开始播放,而不出现loading界面),禁用了页面视频自动播放的功能,包括...
  • 前端进阶之路:点击事件绑定

    千次阅读 2015-10-13 10:17:04
    网页界面与用户的交互通常是通过各种事件来达成的;在各种事件之中,点击事件 往往又是最常见、最通用的一种界面事件。 本文将介绍我在 “点击事件绑定” 这一场景下的进阶之路。 背景 我是一个前端小兵...
  • python--urlopen函数urlretrieve函数

    千次阅读 2020-07-14 11:24:12
    request模块--urlopen函数、urlretrieve函数一.urlopen函数1.说明2.注意点3.示例urlretrieve函数1.说明示例 一.urlopen函数 1.说明 创建一个表示远程url的类文件对象,然后操作这个类文件对象来获取远程数据 2.注意...
  • Excel Mode 函数

    千次阅读 2015-06-19 11:09:38
    Excel 是Microsoft ...Excel中大量的公式函数可以应用选择,使用Microsoft Excel可以执行计算,分析信息并管理电子表格或网页中的数据信息列表,可以实现许多方便的功能,带给使用者方便。这里介绍其中的一个函数MO
  • 百度地图点击触发事件介绍

    万次阅读 2018-06-18 15:30:06
    这个事件是marker中的事件,但是marker事件是可以应用于全局的,然后我们在所有的地图上点击,都可以使用这个事件来获取。 然后,我们看到的事件,也就是marker中的事件,从网站的网页中类参考的覆盖物类我们可以...
  • 最常见的莫过于获取用户对网页上超链接的所有点击事件。要实现这个需求,在 MSDN 中描述了接收网页元素事件的基本方法,但这篇文章的一些细节语焉不详,让人摸不着头脑。在 CodeProject 这篇文章中提出了一种替代的...
  • 百度地图覆盖物点击事件

    万次阅读 2018-01-21 16:39:43
    最近在项目中使用百度地图的自定义覆盖物时发现在手机浏览器下click无法触发,虽然有touchstart...下面的代码我简单地定义了一个红色矩形div,给它一个click事件,添加到地图中 body, html { width: 100
  • 在编写网页自动登录器、网页自动注册器、广告模拟点击器的时候,主要思路是运用webBrowser,用来模拟表单的填写及鼠标点击事件等,以下是你可能会用到的函数: //判断是否网络正常 private bool ...
  • Power Query-具体查看函数的方法

    千次阅读 2018-10-21 00:28:44
    2.在弹出的网页中,找到“PowerQuery公式类别”,然后再在弹出的网页中查找自己需要的函数; 不过最近Microsoft一点就报错: 然后只能返回,在界面中点击“请在 此处 中查找本文的英文版本以便参考。”进入英文...
  • 项目需要用react native进行开发,使用到native echarts进行画折线图,并且给折线图的节点给予点击事件,将当前点击的节点的数据传输出来显示在页面上,找了很久,没有找到解决方案,于是只能自己尝试,现在尝试出了...
  • 只需要通过chrome浏览器以下三个功能就可以轻松找到绑定事件了。 1.Sources(源码) 2.Event Listener Breakpoints(事件监听断点) 3.Call Stack(函数调用栈) 举个栗子: 1.打开某网站,按F12,切换到Sources...
  • 转:ShellExecute函数与ShellExecuteEx函数

    千次阅读 2012-12-07 09:24:21
    ShellExecute函数 ShellExecute函数原型及参数含义如下:  function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,Directory: PChar; ShowCmd: Integer): HINST; stdcall;  hWnd:用于指定父...
  • 回调函数的作用

    万次阅读 多人点赞 2017-03-12 09:02:09
    一直不太理解回调函数的作用,下面是找到的一些关于回调函数的作用的解答。 1.回调函数是一个很有用,也很重要的概念。当发生某种事件时,系统或其他函数将会自动调用你定义的一段函数。 2.回调函数就相当于一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 56,392
精华内容 22,556
关键字:

网页点击事件找到函数