精华内容
下载资源
问答
  • xpath获取步骤: 1、打开火狐浏览器; 2、选择 “打开菜单” -> "附加组件" 如下图所示: ...3、在 “搜素所有附加组件” 输入框中搜索Firebug ...7、打开要获取Xpath的网页并进行一下操作,即可获得元素XPath

    xpath获取步骤:

    1、打开火狐浏览器;

    2、选择  “打开菜单” -> "附加组件"  如下图所示:


    3、在 “搜素所有附加组件” 输入框中搜索Firebug


    4、搜索到 Firebug 单击安装:


    5、用以上方法搜索 FirePath 并安装:

     

    6、重启浏览器,插件安装成功;

    7、打开要获取Xpath的网页并进行一下操作,即可获得元素XPath:







    展开全文
  • 参考文档:http://blog.csdn.net/kaka1121/article/details/53301517在写脚本的过程中,总是...可是sdk自带的uiautomatorviewer并不能获得xpath。在网上找到一个资源可以自动获取xpath–lazy-uiautomatorviewer.j...

    参考文档:http://blog.csdn.net/kaka1121/article/details/53301517 
    在写脚本的过程中,总是遇到标签没有ID或者name等类似的唯一识别属性,为了能识别到这些对象,只能通过xpath了。可是sdk自带的uiautomatorviewer并不能获得xpath。在网上找到一个资源可以自动获取xpath–lazy-uiautomatorviewer. 
    jar包下载地址:http://download.csdn.net/detail/kaka1121/9685936; 
    源码下载地址:https://github.com/lazytestteam/lazyuiautomatorviewer;

    我自己的放在了百度云上

     

    1.下载 
    下载好jar包后把uiautomatorviewer.jar拷贝到安卓安装目录下的 
    \android-sdk\tools\lib 文件夹中替换掉原来的uiautomatorviewer.jar包。 
    双击安卓安装目录下的 \android-sdk\tools\uiautomatorviewer.bat 文件,启动lazy-uiautomatorviewer。 
    2。使用 
    打开后的uiautomator view如下显示 
    这里写图片描述 
    在识别元素时,选择左上角的device screenshot,而不用device screenshot with compressed。第二个是经过压缩后的screenshot,得到xpath也是不全的,通过这个xpath很有可能会识别不到对象。 
    这里写图片描述
    得到xpath 之后就可以通过driver.find_element_by_xpath(”)的方法来操作对象了。

    转载于:https://www.cnblogs.com/kaibindirver/p/8158280.html

    展开全文
  • from lxml import etree ... """ lxml 可以接收 bytes 与 str 类型的数据 """ ... # print(temp_file) ...# 首先需要获得一个 Element Html...# 通过.HTML() 创建对象会自动补全里面的标签 需要注意 html = etree.HTML(temp_fi
    from lxml import etree
    from html import unescape
    
    """
    lxml 可以接收 bytes 与 str 类型的数据
    """
    
    temp_file = open("find_demo.html", "r", encoding="utf-8").read()
    
    # print(temp_file)
    
    # 首先需要获得一个 Element Html对象
    # 通过.HTML() 创建对象会自动补全里面的标签 需要注意
    html = etree.HTML(temp_file)
    print(html)
    html2 = etree.tostring(html).decode()
    # print("未处理html实体编码的str:================================\n{}".format(html2))
    # 解码html中文的深度编码
    print("已处理html实体编码的str:================================\n{}".format(unescape(html2)))
    
    unescape(etree.tostring(html).decode())
    
    # 获取其中点赞的数据
    ret1 = html.xpath("//div/a[@class='good']/span/text()")
    # ret1 = html.xpath("//div/a[contains(@class,'good')]/span/text()")
    # (//a[@class='recmd-left multi'] | //a[@class='recmd-left video'])/img/@src
    # (
    print(ret1)
    
    # 获取其中的href属性
    ret2 = html.xpath("//div/a[@class='good']/@href")
    print(ret2)
    
    print("=" * 100)
    
    # 分组 一个标签下获取多个属性时 封装 list(object)
    ret3 = html.xpath("//div[@class='fen']/a")
    print(ret3)
    # 遍历每条element
    result = []
    for i in ret3:
        obj = {}
        # 每条信息
        # print(unescape(etree.tostring(i).decode("utf-8")))
        # 再对当前element 获取属性封装成json数据
        # obj["href"] = i.xpath("../a/@href")[0]
        # obj["title"] = i.xpath("../a/@title")[0]
        # obj["content"] = i.xpath("../a/text()")[0]
    
        t1 = i.xpath("@href")
        t2 = i.xpath("@title")
        t3 = i.xpath("text()")
        obj["href"] = t1[0] if len(t1) > 0 else None
        obj["title"] = t2[0] if len(t2) > 0 else None
        obj["content"] = t3[0] if len(t3) > 0 else None
        # print(obj)
        result.append(obj)
    
    print(result)
    
    
    展开全文
  • pugixml是一个C ++ XML处理库,它由具有丰富的遍历/修改功能的类DOM接口,非常快的XML解析器(从XML文件/缓冲区构造DOM树)以及用于复杂数据驱动的XPath 1.0实现组成。树查询。 还提供了完全的Unicode支持,具有...
  • sql注入自动扫描

    2020-11-24 14:55:14
    首先想要获得大量的漏洞那我们就需要大量的漏洞,所以需要对网站进行爬取,可以通过对百度根据关键字进行爬虫,然后利用xpath来提取关键字符 def baidu_search(target,page): parment = { 'wd': target, 'pn': ...

    前言:

    曾经在网上发现了一款sql注入自动扫描工具–傀儡扫描器,虽然好用但是时不时就会莫名其妙的暂停,所以想尝试写一个类似的工具锻炼一下自己的python(大佬勿喷🤭)

    爬虫

    首先想要获得大量的漏洞那我们就需要大量的url来提供测试,所以需要对网站进行爬取,可以通过对百度根据关键字进行爬虫,然后利用xpath来提取关键字符

    def baidu_search(target,page):
        parment = {
            'wd': target,
            'pn': (page*10)
    
        }
        url = "https://www.baidu.com/s?ie=utf-8&tn=SE_PSStatistics_p1d9m0nf&p_tk=5922EG4%2BtDYMH4cXzQyoeoiVui3lG1X%2BRvRh88szQUd4z99uxlCQ03vp7snTCsYJAxPvx4GsF6t4gqxT2Mxioj4XGndlZX1m%2Fi7cSnkGsZwvBwu3%2BrenWNED9IqLRGhWBBGz&p_timestamp=1605835171&p_signature=a9f4e7b5639627ec3a4934a1977e6e15"
        header = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0',
            "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
            'cookie':'BIDUPSID=F3EB4BA37D4753BF640A5ECA6D31240D; BAIDUID=05DC758E7BC482A1E483C1C9737176CA:FG=1; PSTM=1598272642; BD_UPN=13314752; ispeed_lsm=2; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; H_PS_PSSID=1464_33059_31660_32970_33098_33101_32962_26350; BDRCVFR[gltLrB7qNCt]=mbxnW11j9Dfmh7GuZR8mvqV; delPer=0; BD_CK_SAM=1; PSINO=5; H_PS_645EC=03b9lBvk8tC8aeNMx12CQ5pc6b5DiB6LyW5VHgdx10UKfBSq%2FrkohOHJCeT1hIjm6GC%2BVj3cFv2MvnjFVzz6; BA_HECTOR=a08l002g040h8ha1pl1fre6180q; kleck=9820b890c953eeae5f70c952f62a797d; COOKIE_SESSION=58510_0_7_6_6_9_0_1_6_4_0_0_59355_0_77_0_1605833867_0_1605833790%7C9%23156073_20_1605751873%7C9; BDRCVFR[t8qxwL5sMGc]=mk3SLVN4HKm; BDRCVFR[Fc9oatPmwxn]=mk3SLVN4HKm; rsv_jmp_slow=1605834338318; ZD_ENTRY=baidu'
        }
        test = requests.get(url, params=parment,headers=header)
        baidu = test.text
        print(test.url)
    
        urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
        baidu.encode('UTF-8')
        html = etree.HTML(baidu)
        html_data = html.xpath('//*[@class="t"]/a/@href')
        for i in html_data:
        	print(i)
    

    这个样子就可以获取到我们想要的网站url了,但是这个链接输出只是百度的一个超链接,需要再跳转我们才可以访问到我们想要的链接,所以需要再次request然后获取到request.url的值

    二次爬虫

    这个爬虫通过下面的target.url可以成功获取到url的值。

    def target_link(urls):
        url = urls
        header = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0',
        }
        try:
            target = requests.get(url, headers=header, timeout=5, verify=False)
            target_url = target.url#获取前面百度超链接跳转的url
            with  open('url.txt', 'a', encoding='UTF-8') as f:
                f.write(str(target_url))
                f.write('\n')
        except:
            pass
    

    这里就是对第一次爬取百度的超链接的一个二次爬虫,从而得到网站真正的url,然后输入写入文件。

    检测注入

    接下来就是最后一步,由于只是简单的检测注入,可以输入单引号使网站报错,然后通过正则匹配关键字来发现报错的内容然后输出就可以了。

    def sql_check(url):
        if '?' not in url:
            print('error')
            return False
        urls = url + "/**/and/**/'1'='2"
        #print(urls)
        r = requests.get(urls)
    
        respose = r.text
        DBMS_ERRORS = {
            # regular expressions used for DBMS recognition based on error message response
            "MySQL": (r"SQL syntax.*MySQL", r"Warning.*mysql_.*", r"valid MySQL result", r"MySqlClient\."),
            "PostgreSQL": (r"PostgreSQL.*ERROR", r"Warning.*\Wpg_.*", r"valid PostgreSQL result", r"Npgsql\."),
            "Microsoft SQL Server": (
                r"Driver.* SQL[\-\_\ ]*Server", r"OLE DB.* SQL Server", r"(\W|\A)SQL Server.*Driver",
                r"Warning.*mssql_.*",
                r"(\W|\A)SQL Server.*[0-9a-fA-F]{8}", r"(?s)Exception.*\WSystem\.Data\.SqlClient\.",
                r"(?s)Exception.*\WRoadhouse\.Cms\."),
            "Microsoft Access": (r"Microsoft Access Driver", r"JET Database Engine", r"Access Database Engine"),
            "Oracle": (
                r"\bORA-[0-9][0-9][0-9][0-9]", r"Oracle error", r"Oracle.*Driver", r"Warning.*\Woci_.*",
                r"Warning.*\Wora_.*"),
            "IBM DB2": (r"CLI Driver.*DB2", r"DB2 SQL error", r"\bdb2_\w+\("),
            "SQLite": (
                r"SQLite/JDBCDriver", r"SQLite.Exception", r"System.Data.SQLite.SQLiteException",
                r"Warning.*sqlite_.*",
                r"Warning.*SQLite3::", r"\[SQLITE_ERROR\]"),
            "Sybase": (r"(?i)Warning.*sybase.*", r"Sybase message", r"Sybase.*Server message.*"),
        }
        for (dbms, regex) in ((dbms, regex) for dbms in DBMS_ERRORS for regex in DBMS_ERRORS[dbms]):
            if (re.search(regex, respose)):
                print(url)
                with  open('example.txt', 'a', encoding='UTF-8') as file:
                    file.write(str(url))
                    print('存在漏洞:' + url)
                    file.write('\n')
    

    这个代码最开始?是判断网站是否是xx.xxx?xxx=xxx如果不是的话自动忽略,可以节省时间,然后下面是对url的一个拼接,通过添加"//and//‘1’='2"来使网站报错,然后获取网站的内容,用下面的匹配式进行匹配(网上嫖的),最后进行输出,同时写入文件中。

    结语

    这里只是简单的介绍了一下工具的思路,最后采用多进程来加快速度,实现批量刷洞。
    ps:工具已经分享到了csdn上。可以自行下载。(工具105行有个小bug,需要大家调试一哈哦)

    展开全文
  • 自动翻页分为两种情况:此处所举例子有一定的时效性,请具体情况具体分析,方法类似(1)一种是像我之前爬虫新京报网的新闻,下一页的url可以通过审查元素获得,第一页的网址是...下一页按钮的审查元素是我们通过获取next...
  • 批量抓取:打开一个web页面,遍历页面上所有能被抓取的元素,获得每个元素的iframe、和三个唯一定位控件的xpath,以及被抓取元素的缩略展示,供使用者勾选,并生成基于LazyUI框架的Java代码,解决整个页面元素的...
  • selenium3+python3密码登录方式自动登录

    千次阅读 2018-12-23 10:58:36
    上图定位到密码登录存在伪元素,因此选择xpath定位方法(对于新版浏览器使用xpath获得路径可以参考博客https://blog.csdn.net/qq_30990097/article/details/81325681) from selenium import webdriver driver =...
  • 获取HTML源代码 执行js得到整个HTML    html = driver.execute_script("return document... 获得整个文档的HTML    html = driver.find_element_by_xpath("//*").get_attribute("outerHTML") # 不要用 dr...
  • 如下图,获取商品价格 属性值显示在content-desc内 ...传统的get text指定是无法获得到这个元素指定属性的值的 ...只有通过使用AppiumLibrary.get ...${a} AppiumLibrary.get element attribute xpath=//android...
  • 如题:钉钉在家考试,用的问卷星,只需要先提交一遍就可以获得答案,然后再填写自己的问卷。 solution 单选题用XPath查找填写,random生成随机数选择选项 多选题,取出页面中所有的有rel属性并且下一个兄弟标签的...
  • 匿名用户1级2018-08-29 回答(1)一种是像我之前爬虫新京报网的新闻,下一页的url可以通过审查元素获得,第一页的网址是...pages = response.xpath('//div[@id="page"]/a[@class="next"...
  • 我把这个测试场景分为以下步骤:1)启动浏览器后,这里我们使用Chrome 3)定位搜索输入框,并记录输入框元素的xpath表达式:\/ \/ * [@ id = ' kw '] 4)定位搜索提交按钮(点击这个按钮在百度)获得xpath表达式:\/ \/ * [@ ...
  • selenium利器之Firebug

    2016-11-09 09:15:20
    在获取页面元素的时候不可避免的要获得CSS,Xpath等,通常火狐只能够获取css,inner HTML,outer html等元素,这些在我们自动化测试过程中是不够的,最重要的xpath的获取方法是没有提供的,因此还要下载一个组件叫...
  • ChroPath Chrome插件

    2020-11-25 14:37:12
    ChroPath Chrome插件,快速定位前端元素...ChroPath是一个由AutonomIQ发布的免费开发工具扩展:ChroPath 5.0ChroPath生成唯一的相对xpath、绝对xpath、cssSelectors、linkText和部分inktext只需单击,就可获得准确定位。
  • 缺点:无法自动加载更多获得更多的视频。作为初学者,欢迎各位大佬提出解决方法以及欢迎指正! import re import requests from lxml import etree from multiprocessing.dummy import Pool import os # 创建下载...
  • 1.学习python包并实现基本的爬虫过程“发送请求——获得页面——解析页面——抽取并储存内容”的流程爬虫相关的包:urllib、request、bs4、scrapy、pyspider等,可从request和xpath开始,其中,request赋值链接网站...
  • Python Selenium 快速上手

    2018-03-10 23:11:00
    获得网页源码之后就可以再利用BeautifulSoup、XPath等去解析和提取我们需要的数据了。 1 导入核心模块   selenium.webdriver模块是使用中的核心模块,提供了常用浏览器的WebDriver实现。目前支持的WebD...
  • 不管是用class,xpath,id,css等方法均是不可以。后来仔细查看,才发现这个登陆内嵌的,即iframe,所以要对其切入才能定位到对于的元素上去。解决办法:1.首先对于iframe的内嵌html,用 switch_to.frame切入 iframe ...
  • 前言上次通过学习,懂得了如何通过不同的对象来定位页面的元素(id,class_name,tag_name,xpath,css等),可以实现模拟点击的功能。当然,这只是初期的web自动化的一点小成绩。当你觉得这些都应用的差不多的情况下,你...
  • 做了将近三个月的公司项目了,每天接触到最多的就是xml,可能项目目标客户的原因,我...我自己喜欢的解析方式就是xpath,用“//”自动寻找节点,当然前提你要和后台沟通好,正常情况下就是直接“./”一个一个节点的去
  • 老规矩先放代码 接下来结束原理 第一步导包第二行 爬取网页获得etree对象,使用text属性获取标签文本或者从文本获取etree对象,并使用text()获取标签...再下一行构造了一个XPath解析对象并对HTML文本进行自动修正XPat
  • EL表达式详解

    千次阅读 2009-04-08 11:01:00
    JSP 2.0中,JSP容器自己可以理解EL表达式。...EL是从JavaScript中获得启发的一种语言,XPath(一种用来访问XML文档的语言),但是EL在对变量的null值和执行更多 数据类型的自动类型转换的处理上更加宽松。这
  • urllib.urlretrieve(absoluteSrc, file_path) # 接收文件路径和需要保存的路径,会自动去文件路径下载并保存到我们指定的本地路径 all_urls = hxs.xpath('//a/@href').extract() # 提取界面所有的url for url in ...
  • 整体框架是一个同步阻塞的模型:在一个线程中循环的执行 receive 方法,等待收到 response,发送消息后,阻塞,只有当 receive 方法获得消息时,才会解除阻塞,发送下一条消息,具备超时异常处理机制 框架内打包了...
  • 以下代码如果放入if条件语句中滚动条就无法实现自动操作? ------------------------------------------------------------------------------- #获得当前窗口 handle=browser.current_window_handle #...
  • 关于python爬虫的分析

    2020-12-10 22:08:59
    可借助chrome浏览器调试功能获得对应数据的xpath路径</li><li>通过正则匹配</li></ol> <p><strong><strong>python爬虫第三方</strong></strong><strong><strong>常用</strong></strong><strong><strong>库</strong>...
  • ExtJS4中文教程2 开发笔记 chm

    热门讨论 2011-12-13 15:00:28
    jquery获得和设置下拉框值的代码 基于jquery的跨域调用文件 ================================= 7款强大的Javascript网格插件 Javascript 汉字编码转换 Javascript 面向对象之封装 Javascript 面向对象之构造函数的...
  • asp.net知识库

    2015-06-18 08:45:45
    通过DataTable获得表的主键 ADO.NET 2.0 操作实例 ADO.NET 2.0 大批量数据操作和多个动态的结果集 ADO.NET 2.0 异步处理 在ASP.NET中使用WINDOWS验证方式连接SQL SERVER数据库 改进ADO.Net数据库访问方式 ASP.NET ...
  • 015 《XPath Helper》完成Bing每日壁纸的小爬虫 014《超级马里奥游戏》Chrome变身小霸王 013《Quick QR》用二维码实现云粘贴 012《OurStickys》Chrome特色网页便签纸 011 《whatruns》一键分析网站技术栈 ...

空空如也

空空如也

1 2 3
收藏数 46
精华内容 18
关键字:

自动获得xpath