python+selenium Driver常用方法(浏览器相关操作)

四个导航栏方法:get、back、forwad、refresh:我们能看到的浏览器导航栏的:【地址栏输入地址、后退、前进、刷新】

from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get('http://baidu.com') #打开百度
time.sleep(3)  #页面停留3秒
driver.get('https://blog.csdn.net/xxlovesht') #打开博客地址
driver.back() #页面回退
time.sleep(3)
driver.forward() #页面前进
time.sleep(3)
driver.refresh()  #页面刷新

 

  • 三个get方法:title、      current_ulr         page_source :打印结果都是字符串

 

driver.get('https://blog.csdn.net/xxlovesht')
print driver.title #获取标题
print driver.current_url   #获取当前地址
print driver.page_source  #获取当前页面的源代码

运行结果如下:

python+selenium Driver常用方法(浏览器相关操作)_第1张图片

 

  • 两个关闭:close 和 quit   close:关闭当前浏览器窗口   quit :关闭client与远端浏览器的会话--关闭该浏览器启动的所有窗口

 

driver.get('https://blog.csdn.net/xxlovesht')
driver.find_element_by_id('toolber-keyword').send_keys('python')
driver.find_element_by_class_name('toolbar-icon').click()
time.sleep(3)
driver.close()  #关闭当前浏览器的窗口
time.sleep(2)
driver.quit() #关闭所有的窗口
  • 一组管理窗口的方法 maximize_window(窗口最大化) get_window_size(获取尺寸)set_window_size(设置尺寸)
driver.get('https://blog.csdn.net/xxlovesht')
time.sleep(2)
driver.maximize_window() #窗口最大化
time.sleep(3)
print driver.get_window_size() #获取窗口的尺寸大小
time.sleep(3)
driver.set_window_size(100,500) #自定义设置窗口的尺寸的大小

打印的尺寸大小如下:

{u'width': 1550, u'height': 840}   设置的尺寸如下:

python+selenium Driver常用方法(浏览器相关操作)_第2张图片

 

  • 一组截图方法: 
  1. get_screenshot_as_file:获取当前浏览器页面的截图,出现IOError时候返回False,截图成功返回True
  2. get_screenshot_as_base64 :保存的是base64的编码格式,在HTML界面输出截图的时候,会用到
  3. get_screenshot_as_png:保存的是二进制数据,很少用到
driver.get('https://blog.csdn.net/xxlovesht')
print driver.get_screenshot_as_file(u"E:\\截图下载\\登陆成功.png")

运行结果: 是 True,同时可以在目录下看到截图python+selenium Driver常用方法(浏览器相关操作)_第3张图片

 

练习:批量抓取网页上的url

#批量抓取网页中的url
driver.get('https://blog.csdn.net/xxlovesht')
import re
urls = []
links = re.findall(r'href="(.*?)"', driver.page_source, re.S)
for link in links:
    if link.startswith('http') or link.startswith('https'):
        urls.append(link)
print '\n'.join(urls)

代码解释:

import re   # 表示引用了正则表达式的包

findall 函数三个参数: 函数返回的是一个列表 ,返回形式为数组

第一个参数,正则表达式

第二个参数,搜索的a

第三个参数,匹配的模式,其中re.S使匹配包括换行在内的所有字符。findall()函数是逐行匹配的。

创建了一个空的列表。循环findall里面的数据,判断http 或者https开头,插入列表里面

然后在换行展示出来 

你可能感兴趣的:(python+selenium Driver常用方法(浏览器相关操作))