Selenium简单介绍

https://selenium-python.readthedocs.io/
https://python-selenium-zh.readthedocs.io/zh_CN/latest/
  • 什么是selenium

    通过浏览器驱动来自动化操纵浏览器的工具

    selenium -> 传输指令 -> webdriver -> 转换指令 -> 浏览器
    
    webdriver的出现是为了兼容各语言各版本, 使java或者python都可以通过同一个webdriver达到操纵浏览器的目的.
  • selenium常用来做什么?

    本质是模拟用户行为, 可以用于以下领域

    • 自动化测试
    • 获取网页数据

      • 复杂动态网页
      • 账号比较重要, 保证不被反爬风控
      • 数据量小, 但是验证复杂的网站
      • 获取session

        • 用户端无法获取session, 但是selenium可以

Selenium安装

  • 安装Python版本的selenium

    pip install selenium
  • 查看当前浏览器版本

    最新版本为89
  • 下载对应浏览器版本的chrome driver

    http://npm.taobao.org/mirrors/chromedriver/
  • 下载后解压至特定目录

    H:\drivers\chromedriver.exe

快速启动

  • 创建一个webdriver驱动实例

    from selenium import webdriver
    
    driver_path = r"H:\drivers\chromedriver.exe"
    browser = webdriver.Chrome(executable_path=driver_path)
  • 浏览器设置

    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument("disable-blink-features=AutomationControlled")
    browser = webdriver.Chrome(executable_path=driver_path, 
  • 请求网址
  • 定位搜索框并模拟键盘输入

    search_input = browser.find_element_by_css_selector('input[aria-label="搜索"]')
    search_input.send_keys("鼠标")
  • 定位搜索按钮并模拟鼠标输入

    search_button = browser.find_element_by_css_selector('button[aria-label="搜索"]')
    search_button.click()
  • 页面解析

    item_array = search.parse_jd_item(browser.page_source)
from selenium import webdriver
from jd_crawler.jd_parser import search
import time

driver_path = r"H:\drivers\chromedriver.exe"

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("disable-blink-features=AutomationControlled")
browser = webdriver.Chrome(executable_path=driver_path, chrome_options=chrome_options)


def sim_search(keyword, url):
    browser.get(url)
    search_input = browser.find_element_by_css_selector('input[aria-label="搜索"]')
    search_input.send_keys(keyword)
    search_button = browser.find_element_by_css_selector('button[aria-label="搜索"]')
    search_button.click()


def main(keyword, url):
    sim_search(keyword, url)
    time.sleep(3)
    item_array = search.parse_jd_item(browser.page_source)
    print(item_array)
    browser.close()


if __name__ == "__main__":
    jd_url = "https://www.jd.com/"
    main("鼠标", jd_url)
Last modification:September 21, 2022
如果觉得我的文章对你有用,请随意赞赏