项目背景
有一个手机机型自动更新获取的需求,在我写好相关的爬虫后,需要将爬虫部署,并且需要配置定时任务每天定期执行。之前在Mac上开发,现在部门给配了一台windows定期执行。
环境准备
A、安装ChromeDriver
1、我是通过ChromeDriver开发的爬虫,所以首先需要安装好Chrome
查看当前的谷歌版本:
然后再到官网上去找对应版本的驱动: ChromeDriver驱动下载
2、配置环境变量
将下载好的压缩文件解压,然后把其中的 exe文件复制到Chrome路径以及Python的安装路径下:
配置Chrome的系统环境变量,此电脑→右击属性→高级系统设置→环境变量→用户变量→Path 中新建: …\Chrome\Application
如果是使用IDEA安装的Python,可能会找不到具体的安装路径,可以 通过 File→Project Structure→Project 查看:
然后我们可以测试一下chromedriver 是否安装成功:
from selenium import webdriver
if __name__ == '__main__':
#测试chromedriver 是否安装成功
browser = webdriver.Chrome()
browser.get('http://www.baidu.com/')
**注意:**浏览器版本自动更新后,可能驱动与之不匹配会报错,就需要重新下载与浏览器对应的驱动,覆盖如下两个位置:
1、Chrome安装路径
2、Python的安装路径
B、部署环境
在部署爬虫的时候,有些包的版本可能需要保持一致,例如selenium的版本从4.3以后有较大的变动,删除了find_element_by_xpath 方法,需要使用find_element()方法,不熟悉的话可以改为之前的版本:
pip install selenium==3.141.0
再看Python Packages里面的版本变为了3.141.0。
C、将爬虫任务配置为每天定时爬取
1.创建 mobileSpider.txt,将后缀改为bat,并且在里面写上python执行指令:
python mobileSpider.py
2.我们打开任务计划程序,选择创建任务,这里写一个名称用以标记,然后切换到触发器。
3.在触达器中,我们新建触发器,并且按照自己想要的定时任务配置定期执行的时间与频次。
4.我们直接确认,可以在触发器中看到刚刚设置的触发器。
5.最后在操作中选择我们要定期执行的指令文件:
其中程序或脚本选择要执行的bat文件: D:\dev\code\mobileSpider\mobileSpider.bat
添加参数: D:\dev\code\mobileSpider\mobileSpider.bat
起始于: D:\dev\code\mobileSpider\
注意: 定时任务配置好以后,可以在终端中测试一下,我们进入到 .bat与 .py存放到文件路径内,使用python mobileSpider.py执行,可能会报错:
Traceback (most recent call last):
File "D:\dev\code\mobileSpider\mobileSpider.py", line 3, in <module>
from selenium import webdriver
ModuleNotFoundError: No module named 'selenium'
解决方案可以参考这篇博文: 解决Windows下使用cmd执行Python文件报错 ModuleNotFoundError: No module named ‘XXXX‘
解决了上述问题以后,然后就可以正常执行了,并且定时任务也可以成功运行: