前言
在我们需要爬取一些带有简单反扒的网页时,通常直接使用 HTTP 的 GET 请求是无法获取到完整的 DOM 的,网页内筒大多是通过 JavaScript 进行后置渲染的,我们使用 HTTP 的 GET 请求获取到的只是一个容器,这时候我们需要爬取网页内容,就需要用到浏览器了,这里给大家介绍如何在服务器上安装 Chrome,并且使用 chromedp 简单调用 Chrome
安装 Chrome 浏览器
SSH连接到服务器
下载 Chrome 浏览器
1
| wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
|
安装下载的 Chrome 安装部
1
| sudo dpkg -i google-chrome-stable_current_amd64.deb
|
安装相关缺少的依赖
验证安装是否成功
安装 ChromeDriver
安装 ChromeDriver 所需依赖
1 2
| sudo apt-get update sudo apt-get install -y unzip xvfb libxi6 libgconf-2-4
|
下载 ChromeDriver 最新版本
1 2
| CHROME_DRIVER_VERSION=$(curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE) wget -N https://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip
|
解压并设置可执行权限
1 2
| unzip chromedriver_linux64.zip chmod +x chromedriver
|
移动到环境变量中
1
| sudo mv chromedriver /usr/local/bin/
|
使用 ChromeDP 简单调用 Chrome
在你的Go代码中,使用chromedp之前,设置Chrome可执行文件的路径,示例如下:
1 2 3 4 5 6
| // 其实不设定也可以,因为我们已经将 Chrome 添加到了 Ubuntu 的环境变量中去了 chromePath := "/usr/bin/google-chrome-stable" chromedp.ExecAllocatorOptions( chromedp.ExecPath(chromePath), chromedp.Flag("headless", true), )
|
结语
到此,Chrome和ChromeDriver就已经安装完毕了,将使用 ChromeDP 来爬取网页信息的爬虫打包好,放在服务器上就可以直接执行了。
后续我还会出一篇如何使用 golang 编写爬虫程序,分别介绍有反扒机制和无反扒机制的爬取方法。