爬虫框架Scrapy笔记-Selenium

简介

对于动态页面,登录等场景。可以使用selenium获取到需要的信息

selenium可以模拟点击,下拉,鼠标,键盘等的操作

安装

selenium

直接使用pip安装即可:pip install selenium

ChromeDriver

  • ChromeDriver的版本一定要与Chrome的版本一致,不然就不起作用

  • 首先需要查看你的Chrome版本,在浏览器中输入chrome://version/即可看到

  • http://chromedriver.storage.googleapis.com/index.html 或者 https://npm.taobao.org/mirrors/chromedriver/ 下载对应的版本

  • 将下载好的chromedriver.exe复制到python安装目录/Scripts/目录下

  • 在安装python的时候,应该就已经设置好了环境变量。如果没有,将python安装目录/Scripts/添加到用户变量的PATH

测试

  • 编写测试文件test.py
from selenium import webdriver import time def main(): browser = webdriver.Chrome() # 如果没有配置好环境变量,可以这么使用 # browser = webdriver.Chrome(executable_path='D:\chrome\chromedriver.exe') browser.get('https://www.baidu.com') time.sleep(2) b.close() if __name__ == '__main__': main()
  • 运行该文件python test.py,能自动打开Chrome浏览器

常用命令

  • browser = webdriver.Chrome():表示创建一个chrome对象,会在电脑上打开浏览器
  • browser.get('https://www.baidu.com')get方法表示请求一个页面
  • browser.page_source:获取的页面源代码
  • browser.close():关闭浏览器
  • browser.set_window_size(1400,800):设置浏览器的大小
  • browser.refresh():刷新浏览器
  • browser.back():后退
  • browser.forward():前进
  • browser.execute_script('window.scrollTo(100,450);'):执行js代码
  • browser.get_cookies():获取cookies
  • browser.add_cookie({ 'name': 'wmm', 'value': '123' }):添加cookie
  • browser.delete_cookie('wmm'):删除一个cookie
  • browser.delete_all_cookies():删除所有cookie

WebElement方法

这个类代表HTML页面元素

  • id_:当前元素的ID
  • size:获取元素大小
  • text:获取该元素的文本
  • title:获取当前页面的title
  • current_url:获取当前页面的url
  • location:获取元素的相对位置
  • tag_name:获取元素标签名的属性
  • click():单击(点击)元素
  • submit():提交表单
  • clear():清除一个文本输入元素的文本
  • get_attribute(name):获得属性值。比如获取class,即get_attribute('class')
  • s_selected(self):元素是否被选择
  • is_enabled():元素是否被启用
  • find_element_by_id(id_):查找元素的id
  • find_elements_by_id(id_):查找元素的id
  • find_element_by_name(name):查找元素的name
  • find_elements_by_name(name):查找元素的name
  • find_element_by_link_text(link_text):查找元素的链接文本
  • find_elements_by_link_text(link_text):查找元素的链接文本
  • find_element_by_partial_link_text(link_text):查找元素的链接的部分文本
  • find_elements_by_partial_link_text(link_text):查找元素的链接的部分文本
  • find_element_by_tag_name(name):查找元素的标签名
  • find_elements_by_tag_name(name):查找元素的标签名
  • find_element_by_xpath(xpath):查找元素的xpath
  • find_elements_by_xpath(xpath):查找元素内的子元素的xpath
  • find_element_by_class_name(name):查找一个元素的类名
  • find_elements_by_class_name(name):查找元素的类名
  • find_element_by_css_selector(css_selector):查找并返回一个元素的CSS选择器
  • find_elements_by_css_selector(css_selector):查找并返回多个元素的CSS选择器列表
  • send_keys(*value):模拟输入元素

创作不易,若本文对你有帮助,欢迎打赏支持作者!

 分享给好友: