首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Watir-webdriver没有抓取指定的div,并且不确定原因?

Watir-webdriver是一个用于自动化Web应用程序测试的Ruby库。它基于WebDriver协议,可以模拟用户在浏览器中的操作,例如点击、填写表单、抓取元素等。

当使用Watir-webdriver抓取指定的div时,如果没有成功获取到该元素,可能有以下几个原因:

  1. 元素定位问题:首先要确保使用正确的选择器定位到目标div元素。可以使用元素的id、class、标签名等属性进行定位。如果选择器不正确,可能会导致无法找到目标元素。
  2. 元素加载延迟:在页面加载过程中,有些元素可能需要一定的时间才能完全加载出来。如果在元素加载完成之前尝试抓取,可能会失败。可以使用Watir-webdriver提供的等待方法,例如wait_until_present来等待元素加载完成后再进行抓取。
  3. 元素是否在iframe中:如果目标div元素位于iframe中,需要先切换到对应的iframe才能进行抓取。可以使用Watir-webdriver提供的frame方法来切换到指定的iframe。
  4. 页面结构变化:如果页面结构发生了变化,可能导致之前的选择器无法准确定位到目标元素。可以通过检查页面结构变化,更新选择器来解决这个问题。

如果以上方法都没有解决问题,可以尝试使用Watir-webdriver提供的其他方法来进行元素抓取,例如divs方法获取所有div元素,然后通过遍历和判断来找到目标div。

对于Watir-webdriver没有抓取指定的div的具体原因,还需要进一步分析和调试。可以尝试打印相关的错误信息、查看日志文件等来获取更多的调试信息。此外,也可以参考Watir-webdriver的官方文档和社区论坛,寻求帮助和解决方案。

腾讯云提供了一系列的云计算产品,其中包括云服务器、云数据库、云存储等。这些产品可以帮助开发者构建和部署各种应用程序。具体推荐的腾讯云产品和产品介绍链接地址,可以根据具体的需求和场景来选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

关于写作那些事之利用 js 统计各大博客阅读量

原因还不是因为我懒,需要复制文章内容,然后整理成特定 csv 格式,最后利用已编写 java 工具类进行统计....js 抓取分析数据 下面以 chrome 浏览器为例,说明如何利用默认控制台抓取关键数据,本文需要一定 jQuery 基础....点击控制台(Console)选项卡,并且将选择器更改成 jQuery 选择器,即$("复制选择器").text(),现在在控制台直接输出内容,看一下能否抓取到浏览量吧! ?...现在已经成功定位到指定元素,而我们要统计是全部文章阅读量,因此需要定位到全部元素....,比如有的发布文章还没有简书钻,所以阅读量排列顺序就是不确定,这一点不像前面介绍慕课手记,但是简书关键数据前面是有小图标的,因此我们可以利用图标定位到旁边数据. ?

49240

(一)网页抓取

所以,你真正想要功能是这样: 找到链接,获得Web页面,抓取指定信息,存储。 这个过程有可能会往复循环,甚至是滚雪球。 你希望用自动化方式来完成它。 了解了这一点,你就不要老盯着爬虫不放了。...例如HTML, CSS, Javascript, 数据结构…… 这也是为什么我一直犹豫着没有写爬虫教程原因。...希望阅读并动手实践后,你能掌握以下知识点: 网页抓取与网络爬虫之间联系与区别; 如何用 pipenv 快速构建指定 Python 开发环境,自动安装好依赖软件包; 如何用 Google Chrome...有没有人针对你需求,编好了定制爬虫,供你直接调用? 如果答案是都没有,才需要你自己编写脚本,调动爬虫来抓取。...这种情况下,你该如何修改代码,才能保证抓取和保存链接没有重复呢? 讨论 你对Python爬虫感兴趣吗?在哪些数据采集任务上使用过它?有没有其他更高效方式,来达成数据采集目的?

8.3K22

【Lighthouse教程】网页内容抓取入门

0x00 概述 网页内容抓取(Web Scraping)是指通过网页抓取工具(即Web Crawler,亦称网页爬虫)对指定网页进行设定行为自动访问,并进行数据分析提取、最终持久化至电子表格/数据库等存储过程...这里使用Lighthouse实例原因无他,主要是配置方便启动快,省得折腾工夫,价格也便宜些。...就是python3了,并且在venv环境中还有了pip,虚拟环境(venv)中一切是与外界(系统python和相应库)完全隔离。...子命令执行网页抓取任务: scrapy crawl movie_1 -o movies.csv 指定名称为movie_1spider,注意这里须要MovieSpider1类属性name一致,并将结果输出成...div:nth-child(1) 用它稍作改动就可以用于代码中解析步骤了,轻松~ 0x03 示例二:动态URL抓取 示例一方法仅能抓取首屏渲染部分电影信息,即每个子类仅是最靠前30个电影,而相对排名靠后电影是需要手动滚动才能出发动态数据按需拉取

6.8K4713

独家 | 手把手教你用scrapy制作一个小程序 !(附代码)

也有人表示,scrapy在python3上面无法运行,适用度没有想象那么广阔。 网络爬虫通俗来说,就是一个在网上到处或定向抓取数据程序,更专业描述就是,抓取特定网站网页HTML数据。...project interpreter意思是解释器,mac电脑是自带python,但是可能种种原因很多人会选择下载新python(例如操作系统位数想从32位改成64位),并且储存在了不同路径。...在这个界面你就可以选择你想用解释器: 这样做也不一定能解决问题,下载失败原因有很多种,例如权限原因,或者是scrapy下载所需某个包版本不够新。...start_urls: 指定要首先访问url start_requests(): 默认从start_urls里面获取url,并且为每一个url产生一个request,默认 callback为parse...调度就是从这里开始执行。这里可以改写,以便从指定url开始访问,一般用于模拟登陆时,获取动态code时候。

2K50

用R语言抓取网页图片——从此高效存图告别手工时代

但是相对于文本信息而言,图片在html中地址比较好获取,这里仅以图片抓取为例,会Python爬虫大神还求轻喷~ 今天要爬取是一个多图知乎网页,是一个外拍帖子,里面介绍了巨多各种外拍技巧,很实用干货...以上图片div分支结构定位信息就可以写作div.zm-editable-content.clearfix 其实这里有一个简便方法,如果你不确定自己定位区间是否正确的话,可以查看右下角html路径(...")%>%html_nodes("img")%>%html_attr("src") 我们需要获取是图片所在div分支结构中img标签下src内容(也就是图片地址),那么如果不想抓取一大堆不相干图片的话...下面就今天分享内容总结以下几点: 用R抓取图片核心要点是获取html结构中存放图片div分区中img标签内src内容(也就是图片地址,有时候可能需要使用read_src内地址)。...图片目标div分区结构选取至关重要(如果你不指定div分区地址、只使用img标签下src定位的话,很有可能抓取了全网页图片网址,各种特殊符号和表情包、菜单栏和logo图表都会被抓取) 如果不太确定自己定位

2.3K110

《Learning Scrapy》(中文版)第2章 理解HTML和XPath使用Chrome浏览器获得XPath表达式常见工作提前应对网页发生改变

如果a前面只有一个斜杠,//div/a会返回空,因为在上面的例子中标签下面没有。...在这几个例子中,你需要记住,因为CSS板式原因,你会看到HTML元素总会包含许多特定class属性。...URL链接: //div[starts-with(@class,"reflist")]//a/@href 选择div下面的所有URL链接,并且这个div下一个相邻元素子元素包含文字References...应该说,网站作者在开发中十分清楚,为内容设置有意义、一致标记,可以让开发过程收益。 id通常是最可靠 只要id具有语义并且数据相关,id通常是抓取时最好选择。...部分原因是,JavaScript和外链锚点总是使用id获取文档中特定部分。

2.1K120

button标签和div模拟按钮区别

如果未指定属性,或者属性动态更改为空值或无效值,则此值为默认值。reset: 此按钮重置所有组件为初始值。button: 此按钮没有默认行为。它可以有与元素事件相关客户端脚本,当事件出现时可触发。...menu: 此按钮打开一个由指定元素进行定义弹出菜单。SEO 以及语义化语义化就是说,HTML 元素具有相应含义,而对于SEO来说,就是让机器可以读懂网页内容。...转言之,是非语义化元素,没有给内容附加任何含义,它只是个,那么你所模拟button和其他用包裹内容没有区别,甚至会被抓取模拟button内容。...另外,大部分搜索引擎并不对button和input做过多处理(不感兴趣),如果你想实现分享、页面锚点or链接到别的页面并需要由搜索引擎抓取,使用标签对SEO更有意义。...而divcursor则是text类型,并且divuser-select为text属性,即可以内部文本可以被选中,而button默认为none,不可选中内部文本;关于默认cursor属性可千万不要被组件库默认样式误导了哦

14510

scrapy笔记六 scrapy运行架构实例配合解析

您可以为每个字段指明任何类型元数据。Field 对象对接受没有任何限制。也正是因为这个原因,文档也无法提供所有可用元数据键(key)参考列表。...Field 对象中保存每个键可以由多个组件使用,并且只有这些组件知道这个键存在 关于items.实例化 可从抓取进程中得到这些信息, 比如预先解析提取到原生数据,items 提供了盛装抓取数据...这部分特性是: 避免重新下载最近已经下载过数据 指定存储数据位置 将所有下载图片转换成通用格式(JPG)和模式(RGB) 缩略图生成 检测图像宽/高,确保它们满足最小限制  典型工作流程如下...: 在一个爬虫(在spiders.py中),你抓取一个项目,把其中图片URL放入 file_urls 组内。...项目会在这个特定管道阶段保持“locker”状态,直到完成文件下载(或者由于某些原因未完成下载)。 当文件下载完后,另一个字段(files)将被更新到结构中。

76310

python3 爬虫第二步Selenium 使用简单方式抓取复杂页面信息

网站复杂度增加,爬虫编写方式也会随着增加。使用Selenium 可以通过简单方式抓取复杂网站页面,得到想要信息。...Selenium 是操作浏览器进行自动化,例如自动化访问网站,点击按钮,进行信息采集,对比直接使用bs4 抓取信息,Selenium抓取速度是有很大缺陷,但是如果抓取页面不多,页面复杂时,使用Selenium...正式开始 首先在代码中引入 selenium from selenium import webdriver 可能有些读者没有把驱动配置到环境中,接下来我们可以指定驱动位置: driver = webdriver.Chrome...指定驱动地址)为“F:\python\dr\chromedriver_win32\chromedriver.exe”,这时就可以指定了驱动位置,也可以不用配置到环境了。..."]/div[1]/h3/a 定位错误,没有找到该定位元素。

2.2K20

WebMagic 基础知识

Spider也是WebMagic操作入口,它封装了爬虫创建、启动、停止、多线程等功能。下面是一个设置各个组件,并且设置多线程和启动例子。...该机制会将下载失败url重新放入队列尾部重试,直到达到重试次数,以保证不因为某些网络原因漏抓页面。...使用文件保存抓取URL,可以在关闭程序并下次启动时,从之前抓取URL继续抓取指定路径,会建立.urls.txt和.cursor.txt两个文件 RedisScheduler 使用Redis保存抓取队列...都会得到处理,例如你可以使用 spider.addPipeline(new ConsolePipeline()).addPipeline(new FilePipeline()) 实现输出结果到控制台,并且保存到文件目标...$(“div.title”) $(String selector,String attr) 使用Css选择器选择,并可以指定属性 page.getHtml().

2.3K10

【Python环境】Scrapy爬虫轻松抓取网站数据

当然它通常并不是一个实体机器人,因为网络本身也是虚拟东西,所以这个“机器人”其实也就是一段程序,并且它也不是乱爬,而是有一定目的并且在爬行时候会搜集一些信息。...不过现在还没有 Release 版本,可以直接使用他们 Mercurial 仓库里抓取源码进行安装。不过,这个东西也可以不安装直接使用,这样还方便随时更新,文档里说得很详细,我就不重复了。.../scrapy-ctl.py crawl mindhacks.cn 会有一堆输出,可以看到抓取了 http://mindhacks.cn ,因为这是初始 URL ,但是由于我们在 parse 函数里没有返回需要进一步抓取.../scrapy-ctl.py shell http://mindhacks.cn 它会启动 crawler ,把命令行指定这个页面抓取下来,然后进入 shell ,根据提示,我们有许多现成变量可以用...URL ,另外,还可以找到“下一页”链接所在,连同其他几个页面的链接一同在一个 div 里,不过“下一页”链接没有 title 属性,因此 XPath 写作 //div[@class="wp-pagenavi

1.7K100

通过selenium抓取新浪微博

由于新浪微博手机网页访问加入了验证码,所以抓取新浪微博后门行不通了,经过一系列研究,最终使用selenium工具模仿浏览器行为访问新浪微博公众号,因为浏览器访问网页时是以访客形式访问 ,所以避免了用户登录这一过程...,可以顺利进行指定微博内容抓取,selenium缺点是无法确定页面加载完毕时间也js执行完毕时间,所以在抓取效率方面会有所牺牲。...Selenium是跨语言,有Java、C#、python等版本,并且支持多种浏览器,chrome、firefox以及IE都支持。在Java项目中使用Selenium,需要做两件事。...开发环境为例,抓取新浪微博指定微博内容,直接上代码。...//选择每条微博文本内容模块 List elements2 = driver.findElements(By.cssSelector("div[node-type=feed_list_reason

21010

教你分分钟学会用python爬虫框架Scrapy爬取心目中女神

备注: 爬虫文件需要定义一个类,并继承scrapy.spiders.Spider 必须定义name,即爬虫名,如果没有name,会报错。因为源码中是这样定义: ?...下面逐一进行介绍: 查询子子孙孙中某个标签(以div标签为例)://div 查询儿子中某个标签(以div标签为例):/div 查询标签中带有某个class属性标签://div[@class=’c1...′]即子子孙孙中标签是div且class=‘c1’标签 查询标签中带有某个class=‘c1’并且自定义属性name=‘alex’标签://div[@class=’c1′][@name=’alex’...注:urllib.urlretrieve(ab_src, file_path) ,接收文件路径和需要保存路径,会自动去文件路径下载并保存到我们指定本地路径。...注:可以修改settings.py 中配置文件,以此来指定“递归”层数,如: DEPTH_LIMIT = 1 7.scrapy查询语法中正则: ?

2K110

python爬虫全解

抓取是一整张页面数据。 - 聚焦爬虫: 是建立在通用爬虫基础之上。抓取是页面中特定局部内容。 - 增量式爬虫: 检测网站中数据更新情况。..."> ex = '.*?...没有请求到对应页面数据原因: 发起第二次基于个人主页页面请求时候,服务器端并不知道该此请求是基于登录状态下请求。 cookie:用来让服务器端记录客户端相关状态。...task:任务,它是对协程对象进一步封装,包含了任务各个状态。 future:代表将来执行或还没有执行任务,实际上和 task 没有本质区别。...- 就是一个集成了很多功能并且具有很强通用性一个项目模板。 - 如何学习框架? - 专门学习框架封装各种功能详细用法。 - 什么是scrapy?

1.5K20

全文搜索实战1-简单网页抓取及搜索

本文基于jsoup和elasticsearch,实现了从指定网页抓取内容,并存储到es中,进而通过es搜索功能实现全文检索 基础环境搭建 es是基于docker安装,鉴于当前springboot对应是...> 2020-07-11 分析网页结构后,确定需要提取内容有...: onclick方法中两个参数,因需通过该参数是拼接详情URL 需要获取超链接对象text 需要获取titleList_02对应div内容,代表了时间 网页抓取服务编写 主要逻辑是: 基于jsoup...将抓取内容通过esrepository,存储到es中。 基于repositoryfind方法,实现特定字段内容查询。...divli对象 Elements elements = document.select("div.titleList li"); AtomicInteger count

81600

Python爬虫技术系列-02HTML解析-BS4

Soup概述 2.1.1 Beautiful Soup安装 Beautiful Soup 简称 BS4(其中 4 表示版本号)是一个 Python 第三方库,它可以从 HTML 或 XML 文档中快速地提取指定数据...Beautiful Soup 语法简单,使用方便,并且容易理解,因此您可以快速地学习并掌握它。本节我们讲解 BS4 基本语法。...,所以 find() 方法没有limit参数。...-result101---") result101 = soup.find('li') # 查询单个标签,与find_all("li", limit=1)一致 # 从结果可以看出,返回值为单个标签,并且没有被列表所包装....出了名老实人------抓取完成 039.我天生就结巴------抓取完成 040.秀还是你秀------抓取完成 041.这就叫专业------抓取完成 042.垃圾桶艺术------抓取完成

9K20

分分钟学会用python爬取心目中女神——Scrapy

备注: 爬虫文件需要定义一个类,并继承scrapy.spiders.Spider 必须定义name,即爬虫名,如果没有name,会报错。因为源码中是这样定义: ?...下面逐一进行介绍: 查询子子孙孙中某个标签(以div标签为例)://div 查询儿子中某个标签(以div标签为例):/div 查询标签中带有某个class属性标签://div[@class='c1...']即子子孙孙中标签是div且class=‘c1’标签 查询标签中带有某个class=‘c1’并且自定义属性name=‘alex’标签://div[@class='c1'][@name='alex'...注:urllib.urlretrieve(ab_src, file_path) ,接收文件路径和需要保存路径,会自动去文件路径下载并保存到我们指定本地路径。...注:可以修改settings.py 中配置文件,以此来指定“递归”层数,如: DEPTH_LIMIT = 1 6.scrapy查询语法中正则: ?

1.2K30

大数据中数据采集几种方式

Flume核心其实就是把数据从数据源收集过来,再将收集到数据送到指定目的地…… 1.2通过网络采集大数据 网络采集是指通过网络爬虫或网站公开API等方式,从网站上获取大数据信息,该方法可以将非结构化数据从网页中抽取出来...1.2.1网络爬虫原理 所谓网络爬虫,其实是一种按照一定规则,自动地抓取web信息程序或脚本。...最后将这些URL放入已抓取队列中,如此循环。 1.2.3爬虫抓取策略 互联网上网页数量以亿级为单位,该以什么样策略爬这些网页数据成为了一个问题,大致分为几个类型。...,没有了“不可抗力问题”,果然这回就成功了。...总结 数据采集大概就是通过系统日志获取和通过爬虫获取这两种,虽然试验了爬虫中WebMagic方式,不过也只是简单跑起来而已,中间想要修改代码达成自己想要结果,不过因为时间问题,而且其中用到正则表达式我并没有系统学过

2.5K30

数据获取:​如何写一个基础爬虫

首先要做是分析每一个页面的内容以及如何翻页,翻页就是当前页面内容抓取完了再如何抓取下一页内容。首页页面拉到最下面的,我们可以看到页码标签,如下图所示,并且能知每一页中有25部电影链接。...下面我们一一分析各个元素在页面中位置并且确定获取值方法 电影名称:在span标签并且属性property="v:itemreviewed",可以使用BeautifulSoup.find() 上映年份...,可以使用BeautifulSoup.find() 评价人数:在span标签并且属性property="v:votes",可以使用BeautifulSoup.find() 制片国家/地区和语言并没有直接在标签中...,只是在id为infodiv文本信息。...所以无法使用标签定位方法获取到,但是可以通过把info中文本信息通过换行符切分成一个字符串list,然后遍历这个list按照指定字符串匹配方法来确定这些信息。

27030
领券