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)