# 打开浏览器
from selenium.webdriver.edge.service import Serviceservice = Service(executable_path=".././msedgedriver.exe")
browser = webdriver.Edge(service=service)browser.get(r'https://www.baidu.com/')
# 截图
browser.get_screenshot_as_file('截图.png')
# 设置浏览器大小# 全屏
browser.maximize_window()
# 设置分辨率 500*500
browser.set_window_size(500,500)
# 设置分辨率 1000*800
browser.set_window_size(1000,800)
# 刷新页面
browser.refresh()
# 页面后退
browser.back()
# 页面前进
browser.forward()
# 获取页面基础属性print(browser.title)
# 当前网址
print(browser.current_url)
# 浏览器名称
print(browser.name)
# 网页源码
print(browser.page_source)
# 单机元素并单击
browser.find_element(by=By.ID, value="su").click()
# 搜索框模拟回车操作
find_element(By.ID,"kw")
find_element(By.NAME,"wd")
find_element(By.CLASS_NAME,"s_ipt")
find_element(By.TAG_NAME,"input")
find_element(By.link_TEXT,u"新闻")
find_element(By.PARTIAL_link_TEXT,u"新")
find_element(By.XPATH,"//*[@class='bg s_btn']")
find_element(By.CSS_SELECTOR,"span.bg s_btn_wr>input#su")
# 八大定位具体使用方法# by表示当前使用什么元素定位,我们可以进入By模块里可以看到By类下的八种属性,value表示当前属性的值1.ID具有唯一性,若是当前标签含有id属性,可以优先使用id定位。
driver.find_element(by=By.ID, value='id后面的字符串')2.name属性不唯一,一个页面可能有多个相同的name值,所以使用时要确保该属性值是唯一的
driver_name = driver.find_element(by=By.NAME, value='q')
driver_name.send_keys("作者是帅哥")3.CLASS_NAME
driver_name = driver.find_element(by=By.CLASS_NAME, value='sb_form_q')
driver_name.send_keys("作者是帅哥")4.LINK_TEXT,用于<a>标签定位
driver_name = driver.find_element(by=By.LINK_TEXT, value='文案')
driver_name.click()  # click点击事件5.PARTIAL_LINK_TEXT,PARTIAL_LINK_TEXT与LINK_TEXT相似,都是用于超链接,区别在于前置value为模糊查询,后者匹配相等
driver_name = driver.find_element(by=By.LINK_TEXT, value='案')
driver_name.click()  # click点击事件6.TAG_NAME, 用于标签定位(<a>,<p>,<input>....),该元素定位不常用,效率低
driver_name = driver.find_element(by=By.TAG_NAME, value='input')
driver_name.send_keys("作者是帅哥")7.XPATH
(1)可理解为元素路径定位,内含两种定位,绝对路径和相对路径绝对路径:以/html开头相对路径:以//*开头driver.find_element(by=By.XPATH, value="//*[@id='sb_form_q' and @name='q']").send_keys("作者是帅哥") #相对路径driver.find_element(by=By.XPATH, value="/html/body/div[2]/div/div[3]/div[2]/form/div[1]/input").send_keys("作者是帅哥") #绝对路径网页开发者模式F12下的复制:Copy XPath       : 相对路径Copy full XPath : 相对路径(2)XPATH用法拓展(适用于相对路径)(1).contains用法 [contains(@属性,"属性值")]:模糊匹配driver.find_element(by=By.XPATH, value="//*[contains(@name,'na') and (@id,'sb_form_q')]").send_keys("作者说帅哥")(2).starts-with用法 [starts-with(@属性,"属性值")]:匹配以XXX开头driver.find_element(by=By.XPATH, value="//*[starts-with(@name,'2') and contains(@id,'2')]").send_keys("12")8.CSS_SELECTOR(1)层级语法定位 网页开发者模式F12下的复制:层级定位可直接copy selector即可driver.find_element(by=By.CSS_SELECTOR, value="copy selector").click()(2)选择器定位1.id选择器,这里需要在value值前加个#driver.find_element(by=By.CSS_SELECTOR, value="#sb_form_q").click()2.class选择器driver.find_element(by=By.CSS_SELECTOR, value="[class='sb_form_q']").send_keys("class选择器") #精准匹配3.属性选择器语法一:value="[属性='属性值']"driver.find_element(by=By.CSS_SELECTOR, value="[name='q']").send_keys("属性选择器")driver.find_element(by=By.CSS_SELECTOR, value="[id='sb_form_q']").send_keys("属性选择器")语法二:value="标签[属性=‘属性值’]"driver.find_element(by=By.CSS_SELECTOR, value="a[id='halou']").click()(3)CSS_SELECTOR拓展匹配以XX开头:value="[id^='head']")匹配以XX结尾:value="[id$='tail']"模糊匹配:valur="[name*='like']"# end

XPATH定位

  1. /开头,绝对路径,非常依赖于页面的顺序和位置
  2. //开头,相对路径,不依赖于页面的顺序和位置,只看整个页面当中有没有符合表达式的元素
  3. .选取当前节点,..选取当前节点的父节点
  4. @ 选取属性 ,//标签名称[@属性名称=值] 比如://*[@id="kw"
  5. 逻辑运算 and 条件or 条件//标签名称[@属性名称=值 and 属性名称=值 ]//div[@class="xxx" and contains(@style,"display:visibility")]
  6. *通配符。匹配所有 //* ; @*通配符。匹配所有属性 //*[@*="hello"]

语法规则

表达式 作用
nodename 选取此层级节点下的所有子节点
/ 代表从根节点进行选取
// 可以理解为匹配,就是在所有节点中选取此节点,直到匹配为止
. 选取当前节点
选取当前节点上一层(上一级目录)
@ 选取属性(也是匹配)

标签定位

方式 效果
/html/body/div 表示从根节点开始寻找,标签与标签之间/表示一个层级
/html//div 表示多个层级 作用于两个标签之间(也可以理解为在html下进行匹配寻找标签div
//div 从任意节点开始寻找,也就是查找所有的div标签
./div 表示从当前的标签开始寻找div

属性定位

需求 格式
定位div中属性名为href,属性值为‘www.baidu.com’的div标签 @属性名=属性值
href为属性名 'www.baidu.com’为属性值 /html/body/div[href=‘www.baidu.com’]

python Selenium浏览器爬虫指南 --未完成版本相关推荐

  1. python selenium爬虫_详解基于python +Selenium的爬虫

    详解基于python +Selenium的爬虫 一.背景 1. Selenium Selenium 是一个用于web应用程序自动化测试的工具,直接运行在浏览器当中,支持chrome.firefox等主 ...

  2. python + selenium +pyquery 爬虫 爬取 1688详情图片 阿里巴巴详情图片 与标题 下载图片并进行压缩

    python + selenium +pyquery 爬虫  爬取 1688详情图片 阿里巴巴详情图片 与标题 下载图片并进行压缩 用到的库和源码下载地址 需要用到chromedriver  包含wi ...

  3. Python Selenium+Requests爬虫[双线程]--今日头条图片爬取【亲测能行!!!】

    码前冷静分析 首先需要准备好selenium.requests库以及Chromedriver 这个就不细说了,有很多博客可以参考 然后讲一下大体思路 首先搜索想要爬取图片的关键词 - 接着是" ...

  4. python+selenium浏览器驱动(chrome,Firefox,IE)下载与封装

    自动化介绍 自动化分为手动自测试和自动化测试,想要转变需要一个思维过程,自动化通俗来讲是一些重复性操作,这要可以用代码来驱动. Selenium(浏览器自动化测试框架) 是一个用于Web应用程序测试的 ...

  5. Python Selenium 浏览器点击操作

    Selenium官网教程 selenium定位方法 Selenium提供了8种定位方式. id name class name tag name link text partial link text ...

  6. python selenium p_Python爬虫(二十一)_Selenium与PhantomJS

    本章将介绍使用Selenium和PhantomJS两种工具用来加载动态数据,更多内容请参考:Python学习指南 Selenium Selenium是一个Web的自动化测试工具,最初是为网站自动化测试 ...

  7. 基于Python +Selenium的爬虫详解

    一.selenium简介 由于requests模块是一个不完全模拟浏览器行为的模块,只能爬取到网页的HTML文档信息,无法解析和执行CSS.JavaScript代码,因此需要我们做人为判断: 1.什么 ...

  8. python+selenium浏览器常用操作(一)

    1.导入selenium自定义的webdriver.后续可通过调用此协议启动各大浏览器 from selenium import webdriver #浏览器 from selenium.webdri ...

  9. [Python][Selenium]浏览器无头模式

    1. edge无头模式 path = "msedgedriver.exe"EDGE = {"browserName": "MicrosoftEdge& ...

最新文章

  1. 图像处理——图像边缘检测
  2. enumerate()使用
  3. NetShopForge网上商店程序(VB)源码—讨论-发布
  4. Vue的生命周期以及钩子函数
  5. 砍掉中国90%的科研人员,对科技发展的影响微乎其微,某教授酒后真言!
  6. [HNOI2010]PLANAR
  7. 重学前端学习笔记(一)--前端发展史以及学习痛点
  8. Chromium 文件下载
  9. oeasy教您玩转vim - 2 - # 使用帮助
  10. 3月23日—3月27日四年级课程表
  11. mysql在mye_数据库映射出现重大问题
  12. 【SAP Abap】X-DOC:SE10 - SAP 传输请求 副本传输请求的应用
  13. 云时代架构之游戏服务器的架构演进
  14. Android属性系统简介
  15. 上传文件过大时,报The field file exceeds its maximum permitted size of 1048576 bytes问题
  16. QZ 5T 抓斗行车起重机 切电阻,空操,电气电器图纸一套这是调试后的最终版图纸,含CAD图纸
  17. 一张图了解“大数据,云计算,物联网”的关系
  18. JAVA学习笔记_Junit测试简单使用_assertEquals
  19. MATLAB-二维插值的笔记与应用--十安辰
  20. 获得淘宝/天猫app商品详情原数据

热门文章

  1. 华为发布新一代5G网络解决方案,加速5G生态发展
  2. ios dat 文件读写_树莓派安装Samba服务,实现家庭文件共享
  3. android扫雷需求分析,扫雷需求分析.doc
  4. Windows XP中自动登录设置
  5. [原创]华为战略管理培训体会
  6. 在线博客系统——最热文章、最新文章
  7. 计算机专业所属院校,全国计算机专业强的大学院校盘点
  8. 钱包缩水,消费降级,你更需要这款PDF转Word转换器
  9. python获取js变量_Python和读取JavaScript变量valu
  10. asp基础入门(上)