作为一个男人 在最高光的时刻 就是说出那句 之后 还不会被人打 ... 虽然在现实生活中你无法这样 但是在这里 就让你体验一番 那种呼风唤雨的感觉 我们之前在爬取某些网站的时候 使用到了一些 python 的请求库 模拟浏览器的请求 我们需要抓包啥的 能不能不这样 可不可以就写几行代码 让它自己去打开浏览器 自己去请求我们要爬取的网站 自己去模拟我们的一些搜索 等等 反正就是 老子躺着,让它自己动 躺好 让 selenium 满足你的要求 怎么玩呢? 那么接下里就是 学习 python 的正确姿势 什么是 selenium ? 其实它就是一个自动化测试工具,支持各种主流的浏览器 直到遇到了 python 转身一变 selenium 变成了爬虫利器 我们先来安装一下 pip install selenium 接着我们还要下载浏览器驱动 小帅b用的是 Chrome 浏览器 所以下载的是 Chrome 驱动 当然你用别的浏览器也阔以 去相应的地方下载就行了
下载完之后 要配置一下环境变量 接着打开 pycharm 撸点代码 from selenium import webdriver 运行一下 可以看到 它自己打开了 Chrome 浏览器 访问了百度 搜索了苍老师的照片 这就是 selenium 的魅力 我们来看下我们刚刚写的代码 我们导入了 web 驱动模块 from selenium import webdriver 接着我们创建了一个 Chrome 驱动 driver = webdriver.Chrome() 有了实例之后 相当于我们有了 Chrome 浏览器了 接着使用 get 方法打开百度 driver.get("https://www.baidu.com") 打开百度之后 我们获取到输入框 至于怎么获取 等等会讲 获取到输入框之后我们就往里面写入我们要搜索的内容 input = driver.find_element_by_css_selector('#kw') 输入完了之后呢 我们就获取到搜索这个按钮 然后点击 button = driver.find_element_by_css_selector('#su') 就这样完成了一次自动的百度搜索 当我们使用驱动打开了一个页面 这时候其实没什么鸟用 因为我们要对那些元素进行操作 就像刚刚我们要获取输入框然后输入一些内容 还有获取按钮点击什么的 selenium 提供了挺多方法给我们获取的 当我们要在页面中获取一个元素的时候 可以使用这些方法
想要在页面获取多个元素呢 就可以这样
比如我们打开了一个页面 是这样的 HTML <html> 可以通过 id 获取 form 表单 login_form = driver.find_element_by_id('loginForm') 通过 name 获取相应的输入框 username = driver.find_element_by_name('username') 通过 xpath 获取表单 login_form = driver.find_element_by_xpath("/html/body/form[1]") 通过标签获取相应的输入框 input1 = driver.find_element_by_tag_name('input') 通过 class 获取相应的元素 login = driver.find_element_by_class_name('login') 用 Chrome 浏览器的审核元素 可以很方便获取相应的属性 直接 copy 就完事了 如果你觉得 find_element_by_xxx_xxx 太长了 那么你还可以这样 driver.find_elements(By.ID, 'xxx') By.属性和上面的是一样的 ID = "id" 当然 我们玩的是爬虫 要的就是源代码 我们已经知道 通过 driver = webdriver.Chrome() 可以拿到浏览器对象 那么要获取源代码还不简单么? 获取请求链接 driver.current_url 获取 cookies driver.get_cookies() 获取源代码 driver.page_source 获取文本的值 input.text ok 以上就是 selenium 的常用方法 想要了解更多相关 selenium 的可以到官方文档查看 https://selenium-python./ 下一次 小帅b将带你使用它来爬取网站 本篇完 再见 近期文章 python爬虫08 | 你的第二个爬虫,要过年了,爬取豆瓣最受欢迎的250部电影慢慢看 python爬虫07 | 有了 BeautifulSoup ,妈妈再也不用担心我的正则表达式了 python爬虫06 | 你的第一个爬虫,爬取当当网 Top 500 本五星好评书籍 扫一扫 学习 Python 没烦恼 坚持原创 给小帅b来个好看 |
|