首页
学习
活动
专区
工具
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定位元素并获取定位的内容

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

    Selenium WebDriver脚本Java代码示例

    为了方便起见,我们将基本URL和期望的标题保存为变量。 启动浏览器会话 WebDriver的get() 方法用于启动一个新的浏览器会话,并将其定向到作为参数指定的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.3K20

    《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.webdriver的send_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.6K31

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

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

    6.8K30

    一行js代码识别Selenium+Webdriver

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

    2.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.3K31

    Selenium自动化测试秘籍:解锁常用函数实战指南

    = 文本信息 可以看出百度首页的 百度一下 这4个字就不是文本信息,而是属性!...窗口 打开⼀个新的页面之后获取到的title和URL仍然还是前⼀个页面的 当我们手工测试的时候,我们可以通过眼睛来判断当前的窗⼝是什么,但对于程序来说它是不知道当前最新的窗⼝应该是哪⼀个。...实战: 我们首先打开百度首页,然后截图,接着再打开第一条热搜再截一张图(注意这里要切换窗口!!!),我们的预期是在images路径下生成两个不同的图片,不会被覆盖,开始测试!...,但诸如图像的其他资源可能仍在加载 none:完全不会阻塞webdriver(不建议!)...总结: selenium自动化一般步骤: 初始化浏览器 打开一个网页 对该网页进行自动化测试操作 打印标题 关闭浏览器 from selenium import webdriver from selenium.webdriver.chrome.service

    8710

    (数据科学学习手札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.8K80

    Selenium 4.0 Alpha更新实践

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

    85620

    博客园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不要每次都打开新的浏览器,直接调用已经打开的浏览器,这样手动登陆一次后就可以重复使用了

    70420

    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

    一周一技 | 不注入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

    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.4K30

    在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.8K20

    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.6K20
    领券