栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python | 05.基于selenium的数据爬取

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python | 05.基于selenium的数据爬取

文章目录
  • 1.selenium
  • 2.驱动下载
  • 3.selenium库的使用
    • 3.1.基础使用
    • 3.2.进阶使用:按键模拟

1.selenium

selenium是自动化测试工具,在python中引入selenium库,可调用webdriver来模拟使用浏览器人工访问网页,并完成各种交互

2.驱动下载

参考文章:selenium.common.exceptions.WebDriverException: Message: "chromedriver"解决

在使用selenium前,需要根据使用的浏览器下载对应的驱动,以Chrome为例:

  1. 查看自己的浏览器版本

  1. 到谷歌浏览器驱动下载网址下载版本最接近的驱动:

  1. 将下载好的驱动放到C:Program Files (x86)GoogleChromeApplication

  1. 将下载好的驱动放到项目启动文件所在目录

3.selenium库的使用 3.1.基础使用
  1. 创建webdriver实例:

    当程序执行到webdriver.Chrome()时,便会开启浏览器客户端

    driver = webdriver.Chrome()
    
    # 设置超时时间为60s
    driver.set_script_timeout(60)
    driver.set_page_load_timeout(60)
    
  2. driver.get(url)跳转到对应的网站

    # 跳转到百度,不要遗漏前面的"https://"
    driver.get("https://www.baidu.com")
    
  3. driver.find_element_by_xpath(xpath_str)获取元素

    # 获取id为kw的HTML元素
    element = driver.find_element_by_xpath(xpath_str)
    
  4. element.get_attribute(attr_name)获取元素的属性

    # 获取元素的id
    element_id = element.get_attribute("id")
    
    # 获取元素的class
    element_class = element.get_attribute("class")
    
    # 获取元素的标签内容(textContent)
    element_text_content = element.get_attribute("textContent")
    
3.2.进阶使用:按键模拟
  1. 键盘按键模拟:导入Keys模块后,输入下方指令

    from selenium.webdriver.common.keys import Keys
    
    # 在element这个元素中按下回车
    element.send_keys(Keys.ENTER)
    

    按键字典如下:

    Keys.BACK_SPACE # 回退键(BackSpace)
    Keys.TAB # 制表键(Tab)
    Keys.ENTER # 回车键(Enter)
    Keys.SHIFT # 大小写转换键(Shift)
    Keys.ConTROL # Control键(Ctrl)
    Keys.ALT # ALT键(Alt)
    Keys.ESCAPE # 返回键(Esc)
    Keys.SPACE # 空格键(Space)
    Keys.PAGE_UP # 翻页键上(Page Up)
    Keys.PAGE_DOWN # 翻页键下(Page Down)
    Keys.END # 行尾键(End)
    Keys.HOME # 行首键(Home)
    Keys.LEFT # 方向键左(Left)
    Keys.UP # 方向键上(Up)
    Keys.RIGHT # 方向键右(Right)
    Keys.DOWN # 方向键下(Down)
    Keys.INSERT # 插入键(Insert)
    DELETE # 删除键(Delete)
    NUMPAD0 ~ NUMPAD9 # 数字键1-9
    F1 ~ F12 # F1 - F12键
    (Keys.CONTROL, ‘a’) # 组合键Control+a,全选
    (Keys.CONTROL, ‘c’) # 组合键Control+c,复制
    (Keys.CONTROL, ‘x’) # 组合键Control+x,剪切
    (Keys.CONTROL, ‘v’) # 组合键Control+v,粘贴
    
  2. 鼠标左键

    左键很简单,直接调用element的click()即可:

    # 在element这个元素中用鼠标左键一下
    element.click()
    

    复杂的按键、组合按键操作(如按住、拖拽、移动到某处等操作)则需要用到ActionChains,参考Python_Selenium之鼠标右键

  3. 调用js:driver.exectue_script(jsStr)

    以滚动鼠标滚轮为例:

    # 定义js:在id为"abc"的元素下,滚动鼠标滚轮到底部
    jsStr = "document.getElementsById('abc').scrollTop=100000"
    
    # 调用js
    driver.execute_script(jsStr)
    
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/272902.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号