在这部分开头我先贴出了自动执行填写健康信息的脚本,对于selenium较为详细的解析和使用指南放在了这一部分的后半段
selenium实战
为什么突然想到学习一波selenium的用法呢?
一方面是在爬虫学习中听说过有这么一款功能极强的浏览器操作模块,另一方面正赶上疫情爆发大家每天都要填报个人健康情况,对于大多数同学基本都能保持健康,每日填写信息也都大同小异,那为什么不让电脑每天自动帮我们上报呢?这样也能避免错过当天的填报时间。
1 | from selenium import webdriver |
安装selenium
首先和安装其他python模块一样,使用pip来安装selenium库1
pip3 install selenium
因为selenium要控制浏览器进行操作,我们还需要下载浏览器的驱动以解析python发送给它的指令,根据浏览器的类型及版本选择不同驱动进行下载
对于MacOS和Linux用户 (以chrome为例) :
- 将下载好的文件放入目录
/usr/local/bin
或/usr/bin
中1
sudo cp 当前chromedriver位置 /usr/local/bin
- 将驱动赋予执行权限
1
sudo chmod +x /usr/local/bin/chromedriver
selenium常用函数
不弹出浏览器窗口并执行后续操作
1
2
3
4from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("--headless")
driver = webdriver.Chrome(options=chrome_options)webdriver.Chrome(<executable_path>?,<options>?)
激活网页驱动器,executable_path用于传入网页驱动程序位置,options用于传入后续不弹出浏览器的个性化设置<webdriver>.get(url)
通过链接访问网站<webdriver>.find_element_by_id('key')
通过id检索元素<webdriver>.find_element_by_class_name('key')
通过class检索元素,返回第一个符合元素<webdriver>.find_elements_by_class_name('key')
通过class检索元素,返回列表(其余选择元素方法中elements作用也相同)<webdriver>.find_element_by_tag_name('key')
通过tag检索元素,返回第一个符合元素<webdriver>.implicitly_wait(10)
最大等待时间<webdriver>.page_source
返回当前网页HTML内容<webdriver>.get_screenshot_as_file('file_path')
将当前网页截图并保存<driver_element>.click()
点击该选中元素<driver_element>.clear()
清除输入框已有的字符串<driver_element>.send_keys('input')
在输入框中输入数据<driver_element>.text
返回元素文本内容
crontab常用指令
在编辑任务时可能需要使用Vim修改,这里有关于Vim的教程
- 编辑当前用户crontab任务
crontab -e
- 查看当前用户所有crontab 列表
crontab -l
- 删除当前用户所有crontab 列表
crontab -r
crontab命令格式
crontab命令由六部分构成: M H D m d command
M
: 分(0-59)H
: 时(0-23)D
: 天(1-31)m
: 月(1-12)d
: 周(0-6),0为星期日command
: 操作指令
*
: 取值范围内的所有数字/
: 代表”每”,如/3表示每3个-
: 代表从某个数字到某个数字,
: 代表离散的取值(取值的列表)
下面我们举一些常见的例子:
* * * * * date>>cron.log
每分钟执行将当前计算机时间输入cron.log* */3 * * * date>>cron.log
每三小时执行00 12 10-15 * * date>>cron.log
每月10-15号12:00执行* * * * 6,0 date>>cron.log
每周六日执行
crontab常见问题
解决macos下crontab不执行的问题:
1
2
3
4
5
6
7
8
9
10
sudo launchctl list | grep cron
locate com.vix.cron
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
ll /etc/crontab
sudo touch /etc/crontabcrontab中python的执行路径为
/usr/bin/python3
,可以用指令安装模块:/usr/bin/pip3 install selenium --user
- 使用
which python3
查看终端内使用的python路径 - 如果在同一任务中执行多条指令,指令间可以用
;
隔开 - 如果需要查看任务报错信息,需要在输出文件后加
>2&1