美文网首页PythonPython
selenium自动化爬虫总结

selenium自动化爬虫总结

作者: 骆旺达 | 来源:发表于2020-10-29 00:56 被阅读0次

    selenium自动化爬虫总结--达达

    一、库引用

    # selenium库
    from selenium import webdriver
    # 参数设置
    from selenium.webdriver.chrome.options import Options
    # 延时设置
    import time
    
    

    二、浏览器初始化

    前置条件:需要下载Chrome驱动。本文中驱动存放在E:\chromedriver1.exe

    1、正常配置:通过selenium打开Chrome浏览器,通过模拟浏览器点击事件自动化爬取数据

    chrome_options = Options()
    webdriver.Chrome("E:\chromedriver1.exe",chrome_options=chrome_options)
    

    如需将浏览器全屏,需配置下述代码在webdriver.Chrome()之后:

    driver.maximize_window()
    

    2、无头浏览器:即无需打开浏览器进行,由后台打开自动爬取(但这个容易被反爬,但简洁方便)

    chrome_options = Options()
    chrome_options.add_argument('--headless')   #使用无头浏览器
    chrome_options.add_argument('--disable-gpu')  #禁用gpu
    chrome_options.add_argument("--window-size=1920,1050")  #专门应对无头浏览器中不能最大化屏幕的方案
    driver = webdriver.Chrome("E:\chromedriver1.exe",chrome_options=chrome_options)
    
    

    三、爬取网站

    (1)设置url地址,通过driver(驱动器)的get函数,载入该网站

    url = "http://www.baidu.com"
    driver.get(url)
    

    (2)查找

    # 根据id找
    drive.find_element_by_id()
    # 根据类名(1个)
    drive.find_element_by_class_name()
    # 根据类名(多个)
    drive.find_elements_by_class_name()
    # 根据标签名(1个)
    drive.find_element_by_tag_name()
    # 根据标签名(多个)
    drive.find_elements_by_tag_name()
    # 根据xpath()
    drive.find_element_by_xpath()
    # 根据css选择器
    drive.find_element_by_css_selector()
    
    # 获得对应属性
    driver.find_element_by_tag_name('a').get_attribute("href")
    

    (3)输入

    driver.find_element_by_id('kw').send_keys("名字")
    driver.find_element_by_id("su").click()
    
    //or  输入enter
    driver.find_element_by_id('sword').send_keys(Keys.ENTER)
    

    (4)从原网站进入ifame

    //DataList是id
    driver.switch_to.frame("DataList")  # 2.用id来定位
    

    (5)当前页面打开新窗口

    js = "window.open('" + href + "');"
    driver.execute_script(js)
    

    (6)新窗口切换

    handles = driver.window_handles  # 获取当前页句柄
    driver.switch_to.window(handles[-1])
    
    // do something
    
    // 跳转回原来
    driver.switch_to.window(handle)
    

    (7) 自动跳转到网站固定页面

    ele = driver.find_element_by_id('nav-main-holderCount')
    driver.execute_script("arguments[0].scrollIntoView();", ele)
    # 往上移动-100像素
    driver.execute_script('window.scrollBy(0,-100)')
    

    (8)浏览器截图

    //设置当前时间
    picture_time = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
    //浏览器截屏
    driver.get_screenshot_as_file("E:\\zhaoshang_scrapy\\test\\" +picture_time +  ".png")
    

    相关文章

      网友评论

        本文标题:selenium自动化爬虫总结

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