如何用Crontab启动图形界面程序?
最近在研究网络爬虫,用来抓取网页。发现 Cloudflare cdn 对爬虫防的很死。使用程序curl,wget,nodejs等访问时都被它拒绝,跳转的警告页面。起初我想的对策是使用无头浏览器(headless browser),当经过试验发现,Cloudflare对无头浏览器也不放过。我很奇怪为什么无头浏览器不能骗过这些爬虫拦截器。经过搜索发现,无头浏览器跟有头浏览器有不少不同的特征,比如正常的浏览器启动时会加载很多插件,而无头浏览器启动时是没有插件的,还比如无头浏览器里的图片是没有尺寸的,还有webgl功能等等。
最后没办法,只能用正常的浏览器,采用无人值守的方式,这就需要程序在后台调度具有图形界面的浏览器。如果使用crontab,会出错,
could not open display
这是因为我们需要知道将图形程序显示在哪个桌面上,使用下面的写法
* * * * * export DISPLAY=:0; google-chrome https://www.google.com