工作笔记2——利用selenium完成对网站上的数据爬取

工作笔记2——利用selenium完成对网站上的数据爬取

  • 读取配置文件
  • 利用profile保存用户名和密码
  • 鼠标悬停显示二级菜单,再点击二级菜单或下拉列表
  • 下拉菜单的定位
  • selenium根据文本信息定位元素

读取配置文件

因为有时候我们的代码中往往需要一些配置参数,如需要连接的ftp的服务器地址,用户名和密码等,当我们换一个ftp时,则只需改配置文件即可,不用再去代码中改,比较方便。python中有很方便的模块能够进行配置文件的读取,如configparser模块,它的使用方法详见此链接。
我使用的时候该模块名称变为configparser,有些出入,估计是版本更新问题,但里面的函数都能正常使用。

	import configparser
	
	# 读取配置文件
	cf=configparser.ConfigParser()
	cf.read(".\config\\settings.ini")
	cf.sections()
	server = cf.get("ftp", "server")
	user = cf.get("ftp", "user")
	pwd = cf.get("ftp", "pwd")
	filepath = cf.get("ftp", "filepath")

利用profile保存用户名和密码

当我们需要处理使用用户名和密码登录的时候,虽然可以使用selenium中的sendkeys,但是这样用户名和密码就会暴露在代码中,或者说我们定位不到弹出来的Windows原生登录框,其实我们还可以使用一种方法,那就是利用火狐浏览器的profile文件存储我们的用户名和密码(前提是先开启浏览器登陆一次,并点击保存用户名和密码),步骤如下(或参考链接):

  • 首先关闭所有已经打开的firefox浏览器
  • cd到Mozilla Firefox文件夹下,输入firefox -p命令
    工作笔记2——利用selenium完成对网站上的数据爬取_第1张图片
  • 在弹出的Firefox choose user profile对话框中点击create profile
  • 选择此新profile文件需要保存的路径,并命名
  • 点击start firefox,利用该profile启动新firefox
  • 输入需要浏览的网址,输入用户名和密码后,点击保存用户名和密码
  • 之后利用该profile文件便可不用输入用户名和密码就能登录了
        # 设置profile
        profile = webdriver.FirefoxProfile("YOUR_PROFILE_PATH")
        # 设置默认下载路径
        profile.set_preference("browser.download.dir", os.getcwd() + "\downloads")
        profile.set_preference("browser.download.folderList", 2)
        profile.set_preference("browser.download.manager.showWhenStarting", False)
        profile.set_preference("browser.helperApps.neverAsk.saveToDisk",
                               "application/octet-stream, application/vnd.ms-excel, text/csv, application/zip")
        # 利用该profile开启Firefox浏览器
        self.driver = webdriver.Firefox(profile)

鼠标悬停显示二级菜单,再点击二级菜单或下拉列表

参见此链接

下拉菜单的定位

参见此链接

selenium根据文本信息定位元素

参见此链接

你可能感兴趣的:(工作笔记2——利用selenium完成对网站上的数据爬取)