美文网首页
python爬虫之selenium获取网页

python爬虫之selenium获取网页

作者: 行走世间的狮子 | 来源:发表于2019-08-16 18:01 被阅读0次

    本质: 代码操纵浏览器,自动化访问网页

    环境:

    • selenium模块:Web自动化测试工具,应用于Web自动化测试
    • chromdriver:chrome流量器自动化测试工具

    使用:

    1. 使用流程
    from selenium import webdriver
    
    # chrome设置无界面模式
    # opt = webdriver.ChromeOptions()
    # opt.set_headless()
    # driver = webdriver.Chrome(options=opt)
    
    # 创建浏览器对象
    driver = webdriver.Chrome()
    # 模拟浏览器打开网页
    driver.get(url)
    
    # 获取节点对象
    # 获取单个元素,如果匹配到多个节点,则只返回第1个节点对象
    element = driver.find_element_by_id("") # 通过id获取节点
    element = driver.find_element_by_class_name("") # 通过class获取节点
    element = driver.find_element_by_xpath('xpath表达式') # 通过xpath语法获取节点
    
    # 获取多个元素,如果结果1个,则返回节点对象,否则返回列表
    # elements = driver.find_elements_by_....
    
    
    # 操作节点对象
    element.send_keys("内容") # 往输入框里输入内容
    element.clear() # 清除输入内容
    element.click() # 点击按钮
    
    
    # 获取网页源代码
    HTML = driver.page_source
    # 获取截图
    PNG = driver.save_screenshot()
    
    # 关闭浏览器
    driver.close()
    
    1. 输入ctrl,alt,shift等特殊键及快捷键
    from selenium.webdrier.common.keys import Keys
    ...
    # 全选ctrl + a
    element.send_keys(Keys.CONTROL,'a')
    # 回车
    element.send_keys(Keys.ENTER)
    ...
    
    1. 一些问题的应对办法
    # 判断按钮是否可点  ---> 页面是否含有不可点按钮元素
    # 利用字符串的查找
    if driver.page_source.find('...disable...') == -1: 
        pass
    
    # 滑动进度条拉到底部 ---> 用于一些AJAX动态加载
    driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")
    

    相关文章

      网友评论

          本文标题:python爬虫之selenium获取网页

          本文链接:https://www.haomeiwen.com/subject/jcwqsctx.html