selenium 为浏览器测试框架,可以调用浏览器webdriver模拟浏览器操作
360打开Chrome:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options url = “ ”
exe_data = r'C:\Users\lsk17\AppData\Local\360Chrome\Chrome\Application\360chrome.exe' # 浏览器根目录所在地
chrome_options = Options()
chrome_options.binary_location = exe_data browser = webdriver.Chrome(chrome_options=chrome_options)
browser.get(url)
html = browser.page_source # 获得页面源码
等待信息出现:
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait # 1. 强制等待 第一种也是最简单粗暴的一种办法就是强制等待sleep(xx)
# 2. 隐性等待 第二种办法叫隐性等待,implicitly_wait(xx)
# 需要特别说明的是:隐性等待对整个driver的周期都起作用,所以只要设置一次即可,我曾看到有人把隐性等待当成了sleep在用,走哪儿都来一下…
# 3. 显性等待 第三种办法就是显性等待,WebDriverWait,配合该类的until()和until_not()方法,就能够根据判断条件而进行灵活地等待了。 from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait try:
WebDriverWait(driver, 20, 0.5).until(EC.presence_of_element_located(By.LINK_TEXT, 'CSDN'))
print driver.find_element_by_link_text('CSDN').get_attribute('href')
finally:
driver.close()
EC.presence_of_element_located  EC.text_to_be_present_in_element
在网页中获取信息:
element = driver.find_element_by_id()
element = driver.find_element_by_name()
element_list = driver.find_elements_by_id()
element = driver.find_elements_by_name()
element = driver.find_element_by_xpath("//input[@id="passwd-id"]")
element = driver.find_elements_by_xpath("//div[@id="passwd-id"]")
滑动滚动条:
#将滚动条移动到页面的底部
js="var q=document.documentElement.scrollTop=100000"
driver.execute_script(js)
time.sleep(3)
#将滚动条移动到页面的顶部
js="var q=document.documentElement.scrollTop=0"
driver.execute_script(js)
time.sleep(3)
#若要对页面中的内嵌窗口中的滚动条进行操作,要先定位到该内嵌窗口,在进行滚动条操作
js="var q=document.getElementById('id').scrollTop=100000"
driver.execute_script(js)
time.sleep(3)

Chrome_options.add_argument('--headless')设为无头模式,可以不弹出浏览器窗口

												

最新文章

  1. linux-15基础命令之-用户与用户组(useradd,userdel,usermod,passwd,groupadd)
  2. iOS开发UI篇—在UITableview的应用中使用动态单元格来完成app应用程序管理界面的搭建
  3. 【POJ】1279 Art Gallery
  4. sql server create foreign key
  5. 冒泡排序(python版)
  6. 71. Simplify Path
  7. [Golang]实习最后一天小纪念+并发爬虫小练习
  8. Codeforces 348A Mafia
  9. 离别·伤
  10. python—webshell_醉清风xf_新浪博客
  11. java代理理解
  12. Mysql 5.6到5.7的mysql.user改变
  13. 【省带宽、压成本专题】从产品架构来看,PCDN如何节流50%
  14. 允许浏览器下载exe.config文件
  15. eclipse快速向下复制行
  16. Java文件复制删除操作合集
  17. java SE 入门之控制语句&方法&递归算法(第五篇)
  18. .NET基础复习一
  19. MongoDB 操作手冊CRUD 删除 remove
  20. sublime for mac 注册码

热门文章

  1. matplotlib双y周实例e
  2. Spark两种内存管理
  3. MongoDB 命令速查表
  4. MySQL的简单概念及软件安装
  5. mknod
  6. JavaScript兼容性问题 js兼容
  7. matlab 只安装部分产品
  8. 【JZOJ6246】【20190627】B
  9. 云服务器搭建JDK+Tomcat+MySQL环境
  10. SpringCloud-Feign声明式服务调用