selenium+PhantomJS

简介: selenium+PhantomJS

selenium+PhantomJS

一直没时间写,今天有时间来写一下
selenium+phantomjs是一个非常强大的工具,requests,urllib2是模拟请求发送参数获取页面,这个是直接用浏览器获取页面,很硬很强大的,
不过他也有一个致命的bug,速度!速度贼慢,所以说他只适合爬取某些特别困难而且数据量不大的网站,然后浏览器我一般都用pahntomjds,毕竟无界面,感觉比谷歌火狐能快一点.
说一下基本语法吧
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
browser1 = webdriver.PhantomJS(executable_path=r"C:\Users\Administrator\Desktop\phantomjs-2.1.1-windows\bin\phantomjs.exe", )  # //内核 
###第一步往往是初学者最头疼的一步,因为有的时候你设置好了环境变量然后也不好用,所以说我一般都是直接用executable_path来指定路径,在项目里面也可以用相对路径来指定.
browser1.get('www.baidu.com')  ##输入要获取的网址
browser1.save_screenshot('a.png')  
###把当前打开的浏览器保存成图片,可以查看当前到哪步,建议在前面time.sleep()个一两秒,因为有的网站打开较慢,有延迟
print browser1.page_source   ###打印出当前获取到页面的源码
#这个相当于是css选择器,by后面的可以为id,name,class等.
res = browser1.find_element_by_id('fei').text 
# 获取标签名值
res = browser1.find_elements_by_tag_name("input")
# 也可以通过XPath来匹配
res = browser1.find_element_by_xpath("//input[@id='passwd-id']")
 #可以定位输入框来往里面输入值,一般用于模拟登陆和查询
browser1.find_element_by_id("fei").send_keys(u"飞啊飞") 
#模拟点击
browser1.find_element_by_id("fei").click()  
# ctrl+a 全选输入框内容
browser1.find_element_by_id("fei").send_keys(Keys.CONTROL,'a')
# ctrl+x 剪切输入框内容
browser1.find_element_by_id("fei").send_keys(Keys.CONTROL,'x')
# 输入框重新输入内容
browser1.find_element_by_id("fei").send_keys("baidu")
# 模拟Enter回车键
browser1.find_element_by_id("fei").send_keys(Keys.RETURN)
# 清除输入框内容
browser1.find_element_by_id("fei").clear()
# 关闭浏览器
browser1.quit()

鼠标操作

#导入 ActionChains 类
from selenium.webdriver import ActionChains
# 鼠标移动到 ac 位置
ac = driver.find_element_by_xpath('element')
ActionChains(driver).move_to_element(ac).perform()
# 在 ac 位置单击
ac = driver.find_element_by_xpath("elementA")
ActionChains(driver).move_to_element(ac).click(ac).perform()
# 在 ac 位置双击
ac = driver.find_element_by_xpath("elementB")
ActionChains(driver).move_to_element(ac).double_click(ac).perform()
# 在 ac 位置右击
ac = driver.find_element_by_xpath("elementC")
ActionChains(driver).move_to_element(ac).context_click(ac).perform()
# 在 ac 位置左键单击hold住
ac = driver.find_element_by_xpath('elementF')
ActionChains(driver).move_to_element(ac).click_and_hold(ac).perform()
# 将 ac1 拖拽到 ac2 位置
ac1 = driver.find_element_by_xpath('elementD')
ac2 = driver.find_element_by_xpath('elementE')
ActionChains(driver).drag_and_drop(ac1, ac2).perform()

通过模拟登陆获取cookie

登录完成后可以通过get_cookies()开获取到通行cookie
cookie = browser1.get_cookies()


更多内容:


参考链接,写的很详细,内容也很到位
    链接:https://www.jianshu.com/p/4b89c92ff9b4
目录
相关文章
|
8月前
|
数据采集 Web App开发 JavaScript
Selenium与PhantomJS:自动化测试与网页爬虫的完美结合
Selenium与PhantomJS:自动化测试与网页爬虫的完美结合
|
JavaScript 前端开发 Python
python3模拟提交问卷星/问卷网表单(selenium+chromedriver/phantomjs)
前一段时间有个课程需要问卷星搜集材料信息,,但是问卷星这东西你不一个个求人哪有人愿意点进去帮你填呢,,呵呵,不行,我自己来。。。
222 0
python3模拟提交问卷星/问卷网表单(selenium+chromedriver/phantomjs)
|
JavaScript 前端开发 索引
Python:Selenium和PhantomJS(二)
Python:Selenium和PhantomJS(二)
153 0
Python:Selenium和PhantomJS(二)
|
Web App开发 数据采集 Python
Python爬虫:selenium使用chrome和PhantomJS实用参数
Python爬虫:selenium使用chrome和PhantomJS实用参数
286 0
|
数据采集 前端开发 JavaScript
Selenium和PhantomJS:模拟用户在浏览器中的操作
Selenium和PhantomJS:模拟用户在浏览器中的操作
759 0
Selenium和PhantomJS:模拟用户在浏览器中的操作
|
Web App开发 Java 测试技术
.net下使用Selenium、PhantomJS
Selenium是什么?PhantomJS又是什么?二者如何在 .net平台上的使用。
610 0
.net下使用Selenium、PhantomJS
|
数据采集 前端开发 JavaScript
Python:Selenium和PhantomJS(一)
Python:Selenium和PhantomJS(一)
198 0
selenium+PhantomJS+IP代理
首先安装selenium、PhantomJS selenium安装 pip install selenium PhantomJS安装这个需要手动的到官网下载 开始使用 导入需要的包 import random from selenium import webdriver from selenium.
|
Web App开发 数据采集 JavaScript
16、web爬虫讲解2—PhantomJS虚拟浏览器+selenium模块操作PhantomJS
【http://bdy.lqkweb.com】 【http://www.swpan.cn】 【转载自:http://www.lqkweb.com】 PhantomJS虚拟浏览器 phantomjs 是一个基于js的webkit内核无头浏览器 也就是没有显示界面的浏览器,利用这个软件,可以获取到网址js加载的任何信息,也就是可以获取浏览器异步加载的信息 下载网址:http://phantomjs.
1336 0

热门文章

最新文章