xpath

How to perform case insensitive search in XPath?

寵の児 提交于 2020-04-07 02:23:09
问题 I am trying to implement case insensitive search using XPath. I have already referred how to perform a case-insensitive attribute selector in xquery so please check before marking as duplicate. I am using Lcase to convert my variable ( L_search ) to lowercase and lower-case functions. My original case sensitive XPath expression is: XPath = "//*[contains(., '"& search &"')]/ancestor-or-self::*/*[local-name()='home' and @locale='en']" I have tried many combinations like : XPath = "//*lower-case

web-magic + Xpath Java程序员

廉价感情. 提交于 2020-04-05 18:57:24
大学毕业一年收获还是满满的!手动滑稽 今天呢,来记录一个爬虫项目,用的web-magic实现,不说Java和Python那个更强,只看那个代价更小,与现在我而言自然是Java喽!同时呢magic也是参考了Scrapy框架的。 先把git地址掏出来: https://gitee.com/xxxx/magicFetch.git(留言给地址) 言归正传,先说爬虫需要什么:   1、明确要做的事情:爬虫,爬哪个网站。   2、从哪里开始:爬虫的入口(启停配)Spider   3、接下来便是如何进行爬取和爬取结果的处理。 详细:   如何启动,如何配置,如何停止:   Spider.create(new Getxgluo()) .thread(10) //线程,magic是支持多线程的 .addUrl(t) //t:要爬取的网站URL .addPipeline(new MyPipeline()) //添加一个对爬取结果的处理操作类--输出到console .addPipeline(new MyFilePipeline()) //再添加一个对爬取结果的处理操作类--输出到文件 .run(); //爬虫诞生,去吧皮卡丘,把我想要的拿回来.     靓仔,你没猜错,create方法是静态的,所以可以用类名直接调用,run方法就是入口,该方法执行的时候爬虫就启动了。  

selenium常用的API

☆樱花仙子☆ 提交于 2020-04-01 03:23:21
打开浏览器 driver.get("http://www.baidu.com") 最大化浏览器 driver.maximize_window() 关闭浏览器 driver.quit() 浏览器向前 driver.forward() 浏览器向后 driver.back() 刷新浏览器 driver.refresh() 定位元素 # 获取单个元素 driver.find_element_by_class_name('') driver.find_element_by_id('') driver.find_element_by_css_selector('') driver.find_element_by_link_text('') driver.find_element_by_name('') driver.find_element_by_tag_name('') driver.find_element_by_xpath('') driver.find_element_by_partial_link_text('') # 获取一组元素 driver.find_elements_by_class_name('') driver.find_elements_by_id('') driver.find_elements_by_css_selector('') driver.find

SQL注入--盲注及报错注入

时间秒杀一切 提交于 2020-03-26 15:28:41
3 月,跳不动了?>>> 盲注查询 盲注其实就是没有回显,不能直观地得到结果来调整注入数据,只能通过其他方式来得到是否注入成功,主要是利用了一些数据库内置函数来达到的 布尔盲注 布尔很明显Ture跟Fales,也就是说它只会根据你的注入信息返回Ture跟Fales 其实登录处的注入就是布尔型的,万能密码就是构造一个永真的查询,比如下面的 select user from test where passwd=‘{injuct}’; #构造永真,即令where的条件用于为真 select user from test where passwd=‘aa‘or’1’=‘1’; #注入的数据是aa‘or’1’=‘1 密码输入无论是否正确,查询都成立。 布尔盲注其实就是利用了这种,我们什么时候需要采用这种呢 1)当没有数据输出点时,我们没有办法直观的判断注入的sql执行情况, 2)有正确或者错误的两种返回,比如查询正确返回一个页面,失败返回另一个页面,但是没有数据 时间盲注 界面返回值只有一种,true 无论输入任何值 返回情况都会按正常的来处理。加入特定的时间函数, 通过查看web页面返回的时间差来判断注入的语句是否正确 。 利用的内置函数 sleep(n):将程序挂起一段时间 n为n秒 if(expr1,expr2,expr3):判断语句

Use Xpath to search for the value of a fieldname and print another attribute if the statement is true

落爺英雄遲暮 提交于 2020-03-26 03:51:33
问题 I'm currently searching for a way to search a xml-file and display a attribute if a condition is satisfied. The xml-file goes like that <Import xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Category Name="Personen-Stellen-Import"> <Record> <Field FieldName="Person.EmailGeschaeft"> <String>bla.blup1@ospelt.com</String> </Field> <Field FieldName="Person.IstReferent"> <String>1</String> </Field> </Record> <Record> <Field FieldName="Person

爬虫之Xpath详解

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-25 06:25:14
XPath介绍 XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上。 因此,对 XPath 的理解是很多高级 XML 应用的基础。 --------------------W3School 1. XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。 2. XPath 含有超过 100 个内建的函数。这些函数用于字符串值、数值、日期和时间比较、节点和 QName 处理、序列处理、逻辑值。 3. XPath 于 1999 年 11 月 16 日 成为 W3C 标准。XPath 被设计为供 XSLT、XPointer 以及其他 XML 解析软件使用。 XPath 术语 1. 在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档节点(或称为根节点)。XML 文档是被作为节点树来对待的。树的根被称为文档节点或者根节点。 2. 基本值(或称原子值,Atomic value)是无父或无子的节点。 3. 项目(Item)是基本值或者节点。 XPath 语法 XPath 使用 路径表达式 来选取 XML

python - XPath 入门语法 1

陌路散爱 提交于 2020-03-24 20:14:40
Absolute XPath \ Relative XPath \\ Single Attribute Multiple Attribute AND OR Contains : //*[contains(@attribute_name, 'attribute_value')] Starts-with : //*[starts-with(@id,'Em')] text : //*[text()='text'] last : (//input[@type='text'])[last()] 最后一个输入框 (//input[@type='text'])[last()-1] -1的话就是倒数第二个输入框 following : //input[@id='FirstName']//following::input[@type='text'] 在指定输入框之后的那个输入框 //following::input[1] preceding : //input[@id='LastName']//preceding::input[@type='text'] 在指定输入框之前的那个输入框 来源: https://www.cnblogs.com/uncle-fang/p/12561438.html

xpath--更直观的数据解析

我只是一个虾纸丫 提交于 2020-03-24 11:40:56
学习过程参考原文章: https://www.jianshu.com/p/90e4b83575e2 XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。 相比于BeautifulSoup来说,xpath更加直观,更加便捷, 有个小技巧是可以直接通过浏览器的开发者工具复制出xpath路径。 通常xpath的使用都是通过安装 lxml 库来使用的。win和linux都可以直接安装 pip install lxml 使用的时候直接 from lxml import etree page = etree.HTML(html_doc) # html_doc为html文档 语法 表达式 描述 nodename 选取此节点的子节点。 / 从根节点选取。 // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 . 选取当前节点。 .. 选取当前节点的父节点。 @ 选取属性。    1.读取当前节点的子节点 In [1]: page.xpath('head') Out[1]: [<Element head at 0x111c74c48>]   获取当前节点(即page这个节点)的子节点,无法获取子孙节点。    2.根节点开始查询 In [2]: page.xpath('/html') Out[2]: [<Element html

scrapy之多url页面数据的抓取

时光怂恿深爱的人放手 提交于 2020-03-24 11:39:26
【概述】 如果我们想要对某一个网站的全站数据进行抓取,我们通常会有如下两种解决方法: 1.手动请求的发送(即基于Scrapy框架中的Spider的递归爬取进行实现(Request模块递归回调parse方法))代码详见: scrapy之多url页面数据的抓取 2.基于CrawlSpider的自动爬取进行实现(更加简洁和高效,推荐使用) 【CrawlSpider】 1.简介 CrawlSpider其实是Spider的一个子类,除了继承到Spider的特性和功能外,还派生除了其自己独有的更加强大的特性和功能。Spider是所有爬虫的基类,其设计原则只是为了爬取start_url列表中网页,而从爬取到的网页中提取出的url进行继续的爬取工作使用CrawlSpider更合适。 2.两大功能组件: a.链接提取器( LinkExtractor ):提取response中符合规则的链接。 LinkExtractor(allow=r'Items/',deny=xxx,restrict_xpath=xxx,restrict_css=xxx,deny_domains=xxx) 参数说明: allow=r'Items/' # 满足括号中“正则表达式”的值会被提取,如果为空,则全部匹配。  deny=xxx # 满足正则表达式的则不会被提取。 restrict_xpaths=xxx #

【Python爬虫学习笔记4】结合Xpath与lxml库解析数据

佐手、 提交于 2020-03-24 11:07:20
在之前的学习中了解了如何使用爬虫向目标服务器发送请求并获取响应,而此后便是要对响应进行处理,这里的处理在爬虫中通常指的是数据解析,即将相应内容数据化以方便我们进行有效数据的提取。在此过程中,有许多解析数据的方法,本节介绍利用Xpath和lxml库来解析数据。 Xpath Xpath(全称XML Path Language,XML路径语言),是一门在XML和HTML文档中查找信息的语言,它提供了非常简明的路径选择表达式,可用来对网页的元素及属性进行遍历查找。 语法规则: 1.选取节点 XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。 表达式 描述 示例 说明 nodename 选取此节点的所有子节点 div 选取div下所有子节点 / 从当前节点选取直接子节点 /div 从根元素下选取所有div节点 // 从当前节点选取所有子孙节点 //div 从全局节点中选取所有的div节点 @ 选取属性 //a[@class] 选取所有拥有class属性的a节点 . 选取当前节点 .//a 选取当前节点下的所有a节点 .. 选取当前节点的父节点 ..//a 选取当前节点父节点下的所有a节点 2.谓语 谓语用来查找某个特定的节点或者包含某个指定的值的节点,被嵌在方括号中。 表达式 描述 示例 说明 [index] 选取指定序列的节点 /div/p[1] 选取div下的第一个p节点