xpath

How to find an element which contains   using Selenium

旧城冷巷雨未停 提交于 2020-03-16 06:47:24
问题 <td>By Company  </td> I need to capture xpath of the above element. I tried following alternatives, but nothing seems to be working in chrome. Can you please suggest any other option. "//td[normalize-space(text())='By Company\u00a0']" "//td[normalize-space(text())='By Company\u00a0\u00a0']" "//td[text()='By Company\u00a0']" "//td[text()[normalize-space(.)='By Company\u00a0']]" "//td[text()[normalize-space()='By Company\u00a0']]" 回答1: To locate the element: <td>By Company  </td> You can use

scrapy框架

一世执手 提交于 2020-03-13 18:43:16
一、介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速、简单、可扩展的方式从网站中提取所需的数据。但目前Scrapy的用途十分广泛,可用于如数据挖掘、监测和自动化测试等领域,也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。 Scrapy 是基于twisted框架开发而来,twisted是一个流行的事件驱动的python网络框架。因此Scrapy使用了一种非阻塞(又名异步)的代码来实现并发。整体架构大致如下 在Scrapy的数据流是由执行引擎控制,具体流程如下: 1、spiders产生request请求,将请求交给引擎 2、引擎(EGINE)吧刚刚处理好的请求交给了调度器,以一个队列或者堆栈的形式吧这些请求保存起来,调度一个出来再传给引擎 3、调度器(SCHEDULER)返回给引擎一个要爬取的url 4、引擎把调度好的请求发送给download,通过中间件发送(这个中间件至少有 两个方法,一个请求的,一个返回的), 5、一旦完成下载就返回一个response,通过下载器中间件,返回给引擎,引擎把response 对象传给下载器中间件,最后到达引擎 6、引擎从下载器中收到response对象,从下载器中间件传给了spiders

Getting WebElement by Text using XPath in Selenium test

佐手、 提交于 2020-03-13 06:33:01
问题 I would like to find any WebElement based on text using XPath. WebElement that I am interested to find, Its HTML, Basically my WebElement that I am trying to retrieve by Text contains an input element. I currently use, driver.findElement(By.xpath("//*[normalize-space(text()) = 'Own Hotel']")); which does not find the WebElement above, but it usually works to retrieve all other web elements. Even, By.xpath("//*[contains(text(),'Own Hotel')]") did not give me any results. Although I am

Getting WebElement by Text using XPath in Selenium test

无人久伴 提交于 2020-03-13 06:32:09
问题 I would like to find any WebElement based on text using XPath. WebElement that I am interested to find, Its HTML, Basically my WebElement that I am trying to retrieve by Text contains an input element. I currently use, driver.findElement(By.xpath("//*[normalize-space(text()) = 'Own Hotel']")); which does not find the WebElement above, but it usually works to retrieve all other web elements. Even, By.xpath("//*[contains(text(),'Own Hotel')]") did not give me any results. Although I am

selenium元素定位篇

旧时模样 提交于 2020-03-13 05:37:46
Selenium webdriver 是完全模拟用户在对浏览器进行操作,所有用户都是在页面进行的单击、双击、输入、滚动等操作,而 webdriver 也是一样,所以需要我们指定元素让 webdriver 进行单击、双击、输入等操作,所以元素定位是 UI 自动化测试的前提条件。可以联想到之前说的页面经常变动的项目为什么不适合进行 UI 自动化测试,如果元素一直在变动,你就要不停的修改代码,维护工作量太大,投入产出比就太低了。 Selenium 提供了 8 种定位方式: l Id l Name l Tag name l Xpath l Css l Link text l Partial Link text l Class name 定位的基本语法为: WebDriver driver = new FirefoxDriver(); driver.findElement(By. id ("id")); driver.findElement(By. name ("name")); driver.findElement(By. className ("className")); driver.findElement(By. linkText ("链接全部文字")); driver.findElement(By. partialLinkText ("链接的部分文字")); driver

Python爬虫入门 | 爬取豆瓣电影信息

拟墨画扇 提交于 2020-03-12 17:04:25
这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源。看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬虫的大门啦~ ps注意:很多人学Python过程中会遇到各种烦恼问题,没有人帮答疑容易放弃。为此小编建了个Python全栈免费答疑.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,不懂的问题有老司机解决里面还有最新Python教程项目可拿,,一起相互监督共同进步! 好啦,正式开始我们的第二节课《爬取豆瓣电影信息》吧!啦啦哩啦啦,都看黑板~ 1. 爬虫原理 1.1 爬虫基本原理 听了那么多的爬虫,到底什么是爬虫?爬虫又是如何工作的呢?我们先从“爬虫原理”说起。 爬虫又称为网页蜘蛛,是一种程序或脚本。但重点在于:它能够按照一定的规则,自动获取网页信息。爬虫的通用框架如下: 1.挑选种子URL; 2.将这些URL放入待抓取的URL队列; 3.取出待抓取的URL,下载并存储进已下载网页库中。此外,将这些URL放入待抓取URL队列,进入下一循环; 4.分析已抓取队列中的URL,并且将URL放入待抓取URL队列,从而进入下一循环。 咳咳~ 还是用一个具体的例子,来说明吧! 1.2 一个爬虫例子 爬虫获取网页信息和人工获取信息,其实原理是一致的,比如我们要获取电影的“评分”信息:

Need help to fill number into Chrome input box with Selenium

六眼飞鱼酱① 提交于 2020-03-12 06:14:06
问题 Hi I've been trying to fill a number in an input box in Chrome (v 75.0.3770.142) using Selenium Basic ChromeDriver (v 75.0.3770.140) in Excel (2013) VBE I've tried the below but get error message: obj.FindElementById("cartPrdQtyBtn0").Value = ("100000") obj.FindElementByCss("input.form-control.ng-pristine.ng-untouched.ng- invalid.ng-invalid-required#cartPrdQtyBtn0").SendKeys ("10000") obj.FindElementByXPath("//input[@class='form-control ng-pristine ng- untouched ng-invalid ng-invalid-required

selenium知识点

五迷三道 提交于 2020-03-12 04:45:17
八大定位方式 find_element_by_id:通过id查找 find_element_by_name:通过name查找 find_element_by_tag_name:通过tag查找 find_element_by_class_name:通过classname查找 find_element_by_link_text:通过超链接的文本查找(完全匹配)(类似xpath的text()) find_element_by_partial_link_text:同上,但是是部分查找 find_element_by_css_selector:通过css选择器 find_element_by_xpath:通过xpath XPATH知识点总结: /单斜杠绝对定位 //双斜杠相对定位 使用语法: //标签[@属性=”值”] 特殊属性: 标签的文本属性值:text() 模糊查找:contains(@属性,"值") 轴运算: ancestor:祖先节点,包括父节点,一直到根节点html parent:父节点 preceding:当前元素节点标签之前的所有结点,一直到根节点html preceding-sibling:当前元素节点标签之前的所有兄弟节点 following:当前元素节点标签之后的所有节点,一直到结束的根节点html following-sibling:当前元素节点标签之后的所有兄弟节点

Python爬虫-xpath

雨燕双飞 提交于 2020-03-12 04:19:49
Python爬虫-xpath Python爬虫-xpath 说明 再说明 插件推荐 语法讲述 举栗子 代码里使用 实战句子迷 需要的总结: 说明 关于Python爬虫请求数据方面的知识点基本讲完,但请求到数据之后呢? 当然是提取数据,抓出对我们有价值的内容是整个爬虫流程的关键步骤之一。现下流行方法有:xapth,BeautifulSoup,正则,PyQuery。如无意外,我会一一笔记下来。今天说说我的最爱吧。 ——xpath 再说明 一般情况下,我们爬到的是整个静态网页页面,得到的是html源码,包含各种标签。但那些标签并非我们想要,如: 我们只需要里边的文字,这种时候就可以xpath了。如上所说,类似的解决方法包括正则以及BeautifulSoup,前者难度较大,后者广受追捧。从解析速度上说,正则最快,xpath次之,BeautifulSoup再次之;从上手难度来说,BeautifulSoup最易,xpath次之,正则再次之。综合考虑,我偏爱xpath。也有人推崇PyQurey,认为比起繁琐的“美丽汤”语法,它短小精悍,而且如果使用者是前端工程师,掌握起来不需要耗费任何学习成本。这大概因为PyQurey的语法源于JQurey吧。 插件推荐 基于chrome浏览器的插件,它可以让我们提前看到提取效果,使用快捷键 ctrl+shift+x 语法讲述 只说常用的: 1. /

xpath取其中几个使用position

家住魔仙堡 提交于 2020-03-11 13:58:42
from lxml import etree html = ''' <!DOCTYPE html> <html lang="en"> <head> <!--网页头部信息--> <title>网页名</title> </head> <body> <!--下面是网页正文--> <div class="two">id-text</div> <div class="one two">class-text</div> <div class="one">class-span</div> <div class="three">three</div> </body> </html> ''' html =etree.HTML(html) content1 = html.xpath("//div[position()>2 and contains(@class,'three')]/@class") #取div位置大于2的 并且类包含three的 print(content1) 来源: https://www.cnblogs.com/php-linux/p/12461872.html