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

自动操作浏览器之--无界面selenium爬虫

在之前已经学会了如何使用selenium驱动浏览器,并且做操作 详情请看:selenium自动化操作浏览器 但是selenium总是会打开一浏览器,这次我们来看一不用打开浏览器,做自动化操作方式。...获取界面信息就可以使用: from selenium import webdriver driver=webdriver.PhantomJS() #url打开打开网址 driver.get(url...02、selenium提取内容 无界面的操作获取页面信息搞定了,那怎么来获取指定内容呢! 操作还是如之前操作,截屏,定位,这些都是相同。...获取想要指定内容,只需要这样: 根据之前定位方式:然后加上 .text() 具体得来看一例子: from selenium import webdriver driver=webdriver.PhantomJS...() #url打开打开网址 driver.get(url="http://www.baidu.com") driver.page_source()#获取页面html #通过id定位元素并获取定位内容

76630
您找到你想要的搜索结果了吗?
是的
没有找到

Selenium WebDriver脚本Java代码示例

为了方便起见,我们将基本URL和期望标题保存为变量。 启动浏览器会话 WebDriverget() 方法用于启动一浏览器会话,并将其定向到作为参数指定URL。...get() getTitle() getPageSource() getCurrentUrl() getText() 1、 get(url) 示例用法: 它会自动打开一浏览器窗口,并跳转到括号内指定...2、getTitle() 示例用法: 不需要参数 获取当前页标题 去掉title字符串前后空白 如果页面没有标题,则返回空字符串 3、getPageSource() 示例用法: 不需要参数 以字符串值形式返回页面的源代码...navigate().forward() navigate().back() navigate().to() navigate().refresh() 1、navigate().to() 示例用法: 它会自动打开一浏览器窗口...,并跳转到括号内指定url页面; 它作用与get()方法完全相同。

5.2K20

《Python Web开发 - 测试驱动方法》阅后感

from selenium imoprt webdriver browser = webdriver.Firefox() browser.get('http://localhost:8000') assert...如果你没有用到Selenium这样自动测试工具,你应该试试,它会在你运行时候,自动打开浏览器。 ?...你写测试都会自动执行下去,所以他会把这些任务一跑一遍。并且,是由机器来执行: Selenium会打开一浏览器窗口,打开某个页面,输入表单信息,然后点击确认,最后验证信息是不是正确。...Selenium会打开一浏览器窗口,打开某个页面查看页面的标题是不是正确Selenium会打开一浏览器窗口,并按照你需要点击页面的某个button,然后检查页面是不是会出现类似的东西。...但是,你并不会意识到这其中美妙之处。 红-绿-重构 实现上,我们在重复过程是:红-绿-重构。 通常来说,红原因是因为我们依据客户需求编写测试用例。

1.3K60

FreeBuf官网发布《简易Python Selenium爬虫实现歌曲免费下载》

步骤一: 进入酷狗主页,F12查看元素,,通过selenium.webdriversend_keys()方法给send_input类传参,即用作用户输入,然后通webdriver.click(...这里会有一js重定向,通过webdriver.current_ur就可以了,,切记一点!...需要注意是,这里歌曲链接也包含一js重定向,但不一样是浏览器会打开一页面(至少火狐会),可以在click()方法后通过webdriver.switch_to_window()方法跳转到新打开页面...步骤三: 进入播放页面后通过xpath找到播放源文件链接(强推firepath,xpath神器啊)但发现这里依然有一js渲染,来生成播放源链接,直接提取标签会显示为空,于是继续webdriver...actions.perform() #wait(driver) driver.switch_to_window(driver.window_handles[1]) #跳转到新打开页面

1.2K50

《手把手教你》系列练习篇之4-python+ selenium自动化测试(详细教程)

简介   今天我们继续前边练习,学习和练习一下:如何使用webdriver方法获取当前测试页面URL、如何获取当前页面的title、如何打开浏览器新建页面、如何操作单选按钮等等,这些小练习,来巩固基础...2. webdriver方法获取当前测试页面URL   本小节介绍如何通过webdriver方法获取当前测试页面URL。...获取当前URL有什么用处呢,一般URL可以帮助我们判断跳转页面是否正确,或者URL中部分字段可以作为我们自动化测试脚本期待结果一部分。...获取当前页面的title   本小节介绍了如何获取当前页面URL值,本文介绍如何获取当前页面的title,这个也可以作为测试结果依据,通过得到title和预期值对比,可以支持我们判断页面跳转正确...4. selenium方法打开一tab   本小节介绍如selenium方法打开一tab,我们知道在浏览器里,我们按住 ctrl+ t 就可以新打开一tab。

1.5K30

一日一技:如何正确移除Selenium中window.navigator.webdriver

但是,如果你打开一普通Chrome窗口,执行相同命令,可以发现这行代码返回值为 undefined,如下图所示。 ?...并不是这样,如果此时你在模拟浏览器中通过点击链接、输入网址进入另一页面,或者开启新窗口,你会发现, window.navigator.webdriver又变成了 true。如下图所示。 ?...那么是不是可以在每一页面打开以后,再次通过webdriver执行上面的js代码,从而实现在每个页面都把 window.navigator.webdriver设置为 undefined呢?也不行。...因为当你执行: driver.get(网址)时候,浏览器会打开网站,加载页面并运行网站自带js代码。...并且无论你打开网页,开启新窗口还是点击链接进入其他页面,都不会让它变成 true。运行效果如下图所示。 ?

6.6K30

webdriver使用已打开chrome

基本功能: 执行脚本a,打开一chrome,脚本a执行完成,chrome未关闭。 执行脚本b,继续使用a打开chrome,不新启浏览器。...附加: 如果已打开chrome未关闭,则在chrome中新建标签页来打开页面。 如果已打开chrome已关闭,则新启浏览器。...最近用python+selenium+pytest,写了测试小工具用来自动化登陆浏览器,一方面是方便管理网址、账号、密码,存放在脚本中,另一方面也省去了频繁输入登陆网站操作,节省了不少时间。..."] 经过试验,python存在一坑是每次初始化就会调start_session去新开一空白浏览器。...driver = webdriver.Remote(command_executor=params["server_url"]) driver.quit() # 退出start_session新开空白浏览器

2.2K31

一行js代码识别Selenium+Webdriver

但是,如果你打开一普通Chrome窗口,执行相同命令,可以发现这行代码返回值为undefined,如下图所示。 ?...那么是不是可以在每一页面打开以后,再次通过webdriver执行上面的js代码,从而实现在每个页面都把window.navigator.webdriver设置为undefined呢?也不行。...因为当你执行:driver.get(网址)时候,浏览器会打开网站,加载页面并运行网站自带js代码。...并且无论你打开网页,开启新窗口还是点击链接进入其他页面,都不会让它变成true。运行效果如下图所示。 ? 截至2019年02月12日20:46分,本文所讲方法可以用来登录知乎。...如果使用 Selenium 直接登录知乎,会弹出验证码;先使用本文方法再登录知乎,能够成功伪装成真实浏览器,不会弹出验证码。

2.5K30

(数据科学学习手札50)基于Python网络数据采集-selenium篇(上)

,我们要检验一下我们环境有没有正确搭建完成,在你Python编辑器中,写下如下语句: from selenium import webdriver '''创建一Chrome浏览器窗体'''...,关于这一点我们会在之后单独开一篇博客来详细介绍,下面简单演示一下如何为我们Chrome()浏览器对象设置IP代理: from selenium import webdriver '''设置代理IP...: browser.get(url):在浏览器主窗口中打开url指定网页; browser.title:获得当前浏览器中主页面的网页标题: from selenium import webdriver...关于主页面:   这里要额外介绍一下,我们在前面一大段中提到过很多次主页面这个概念,是因为在selenium控制浏览器时,无论浏览器中开了多少网页,都只将唯一一网页视为主页面,相应很多webdriver...(这里指的是新开一窗口显示新界面,而不是在原来窗口覆盖掉原页面),浏览器中页面依旧是锁定在原始页面中,即get()方法跳转到网页,这种情况我们就需要用到网页句柄来唯一标识每一网页;   在

1.8K50

基于Selenium模拟浏览器爬虫详解

劣势: 相比于抓包→构造请求→解析返回值爬虫,由于Selenium需要生成一浏览器环境,所有操作(与元素交互、获取元素内容等)均需要等待页面加载完毕后才可以继续进行,所以速度相比构造请求慢很多。...如果需要抓取同一前端页面上面来自不同后端接口信息,如OTA酒店详情页酒店基础信息、价格、评论等,使用Selenium可以在一次请求中同时完成对三接口调用,相对方便。.../city/beijing_city/ driver.get(url) 运行上述代码,会打开一浏览器,并且加载去哪儿酒店列表页 这时候可以通过webdriver自带一些一些方法获取元素内容或者与元素进行交互...四、一完整模拟浏览器爬虫 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains.../city/beijing_city/ driver.get(url) time.sleep(6) #等待页面加载完再进行后续操作 """在页面顶部、底部找了一元素,并模拟鼠标从顶到底滑动

2.7K80

Selenium 4.0 Alpha更新实践

窗口管理不在依赖一driver 相对定位器功能丰富 补充全屏快照功能 ChromiumDriver和DevTools: 在Selenium 3中,EdgeDriver和ChromeDriver具有从...DevTools是一类,具有用于获取开发人员选项方法类。 DevTools还可以用于性能评估并获取页面加载时间。...更好窗口和标签管理 Selenium 4现在具有可以同时在两不同窗口上工作功能。当我们要导航到新窗口(或选项卡)并在那里打开另一URL并执行某些操作时,此功能特别有用。...()方法根据其参数中指定WindowType打开一新窗口或选项卡。...---- 郑重声明:文章禁止第三方(腾讯云除外)转载、发表,事情原委测试窝,首页抄我七篇原创还拉黑,你们良心不会痛吗?

80420

一周一技 | 不注入JS怎么防止Pyppeteer被反爬?

摄影:产品经理 厨师:kingname 在我以前一篇文章:一日一技:如何正确移除Selenium中window.navigator.webdriver值,我讲到了如何在Selenium启动Chrome...由于Selenium启动Chrome中,有几十特征可以被识别,所以在爬虫界已经没有以前那么受欢迎了。模拟浏览器新秀Puppeteer异军突起,逐渐受到了爬虫界关注。...如果你使用模拟浏览器爬淘宝,你会发现,无论怎么修改参数,Selenium总是可以立刻被识别。但是如果你使用了本文方法,用Pyppeteer抓取淘宝,你就会发现另外一广阔天地。...await browser.close() asyncio.get_event_loop().run_until_complete(main()) 代码运行以后,会打开Chrome浏览器,并访问 http...这种方式每开一页面都要执行一次,繁琐,愚蠢! 那么正确办法是什么呢? 我写这篇文章时候(2019-08-15),Pyppeteer最新版本为0.0.25,如下图所示: ?

5.9K31

博客园api调用实例:获取授权码

该接口有一code参数,它是博客园授权码,需要通过另一接口获取:获取授权码 下面讲一下如何获取授权码 获取授权码接口文档如下 刚开始我用requests在后台请求了这个接口,发现无法得到...,自动带上code参数,应该从前端页面获取 例行网上冲浪一番后,发现可以通过selenium来实现,用selenium来模拟前端登录然后拿到code 传送门:https://q.cnblogs.com...# print(conf["cn_blogs"]["client_id"]) def get_code(): driver = webdriver.Chrome() url =...'__main__': get_code() 运行这个文件后,会自动打开chrome浏览器,然后跳到登录页面,你手动输入博客园账号密码登陆后,后端就会把code打印出来了 因为每次调用get_code...()函数时,selenium会打开一浏览器,然后需要你手动输入验证码,这样太不人性化了 我们需要设置selenium不要每次都打开浏览器,直接调用已经打开浏览器,这样手动登陆一次后就可以重复使用了

64520

Python 自动化指南(繁琐工作自动化)第二版:十二、网络爬取

调用webbrowser.open()函数打开网络浏览器。 打开一文件编辑器选项卡,并将其保存为mapIt.py。...这就是你程序要做: 从命令行参数中获取搜索关键字 检索搜索结果页面 为每个结果打开一浏览器选项卡 这意味着您代码需要执行以下操作: 从sys.argv中读取命令行参数。...用requests模块获取搜索结果页面。 找到每个搜索结果链接。 调用webbrowser.open()函数打开网络浏览器。 打开一文件编辑器选项卡,将其另存为searchpypi.py。...打开一文件编辑器标签,保存为downloadXkcd.py。...,带有键'x'和'y'来表示元素在页面位置 例如,打开一文件编辑器选项卡并输入以下程序: from selenium import webdriver browser = webdriver.Firefox

8.7K70

selenium ,webdriver 运行原理与机制

让我们来看一下,一条Selenium脚本执行时后端都发生了哪些事情: 对于每一条Selenium脚本,一http请求会被创建并且发送给浏览器驱动 浏览器驱动中包含了一HTTP Server,用来接收这些...Selenium 是将各个浏览器API封装成" Selenium自己设计定义协议,名字叫做The WebDriver Wire Protocol " webdriver API 操作层面: 1、测试人员编写...UI自动化测试脚本(java,python等等),运行脚本后,程序会打开指定webdriver浏览器 webdriver浏览器作为一remote-server 接受脚本命令,同时webservice...会打开一端口:http://localhost:9515 浏览器则会监听这个端口 2、webservice会将脚本语言翻译成json格式传递给浏览器执行操作命令 逻辑层面: 1、测试人员执行测试脚本后...unexpectedAlertBehaviour": "", "version": "71.0.3578.80", "webStorageEnabled": true } } 如何打开一网页

1.2K30

在Pyppeteer中正确隐藏window.navigator.webdriver

摄影:产品经理 厨师:kingname (文末福利)在我以前一篇文章:一日一技:如何正确移除Selenium中window.navigator.webdriver值,我讲到了如何在Selenium启动...由于Selenium启动Chrome中,有几十特征可以被识别,所以在爬虫界已经没有以前那么受欢迎了。模拟浏览器新秀Puppeteer异军突起,逐渐受到了爬虫界关注。...如果你使用模拟浏览器爬淘宝,你会发现,无论怎么修改参数,Selenium总是可以立刻被识别。但是如果你使用了本文方法,用Pyppeteer抓取淘宝,你就会发现另外一广阔天地。...await browser.close() asyncio.get_event_loop().run_until_complete(main()) 代码运行以后,会打开Chrome浏览器,并访问 http...这种方式每开一页面都要执行一次,繁琐,愚蠢! 那么正确办法是什么呢? 我写这篇文章时候(2019-08-15),Pyppeteer最新版本为0.0.25,如下图所示: ?

3.7K20

selenium设置proxy、headers(phantomjs、Chrome、Firefox)

(代理设置)参数值,重新打开一sessionId,我看意思就相当于浏览器清空缓存后,加上代理重新访问一次url proxy=webdriver.Proxy() proxy.proxy_type=ProxyType.MANUAL...desired_capabilities["phantomjs.page.settings.loadImages"] = False # 利用DesiredCapabilities(代理设置)参数值,重新打开一...print(page) # 隐式等待5秒,可以自己调节 driver.implicitly_wait(5) # 设置10秒页面超时返回,类似于requests.get()timeout选项,driver.get...url = "https://www.baidu.com/" browser.get(url) # 通过js新打开一窗口 newwindow='window.open("https://www.baidu.com...:'DEF'}) # 通过js新打开一窗口 browser.execute_script(newwindow) input("查看效果") browser.quit() selenium设置chrome

4.4K20

Java爬虫系列四:使用selenium-java爬取js异步请求数据

= ""; String uri = "http://quote.eastmoney.com/sh600036.html"; //1.生成httpclient,相当于该打开一浏览器...之所以爬不到正确结果,是因为这个值在网站上是通过异步加载渲染,因此不能正常获取。 2.java爬取异步加载数据方法 那如何爬取异步加载数据呢?...通常有两种做法: 2.1内置浏览器内核 内置浏览器就是在抓取程序中启动一浏览器内核,使我们获取到 js 渲染后页面就和静态页面一样。...常用内核有 Selenium PhantomJs HtmlUnit 这里我选了Selenium,它是一模拟浏览器,是进行自动化测试工具,它提供一组 API 可以与真实浏览器内核交互。...chromeOptions.addArguments("--disable-dev-shm-usage");//禁用开发者shm chromeOptions.addArguments("--headless"); //无头浏览器,这样不会打开浏览器窗口

1.9K21
领券