我想推荐我在Golang学习期间创建的网站。
我的网站http://techdaily.info用于学习Golang语言。
除了爬行dev.to,我还爬行了其他一些网站,例如freecodecamp.com,edimpor.com,hashnode.com,logrocket.com,infoq.com
因此,我建立了一个专门爬行其他网站的网站
我使用的一些技术。
- Golang
- colly
- iin li>
- 服务
- Docker
- mysql
- 运行动作部署到服务器
- cronjob每日爬网
构建本地运行
将文件app_example.yaml更改为app.yaml
cp app_example.yaml app.yaml
构建Docker
docker-compose up --build
安装软件包Golang
docker-compose exec crawl go mod tidy
文件夹供应商
docker-compose exec crawl go mod vendor
爬行
docker-compose exec crawl go run cmd/main.go
使用空气自动加载
docker-compose exec crawl air -c .air.conf
部署
运行文件makefile构建项目进入文件夹箱
make copy_template build_app_web build_app_crawl
在后台运行中创建服务
创建服务并运行应用网络
sudo nano /lib/systemd/system/app_web.service
复制内容
[Unit]
Description=App Web
[Service]
Type=simple
Restart=always
RestartSec=5s
WorkingDirectory=/root/actions-runner/crawl/crawl/crawl/bin
ExecStart=/root/actions-runner/crawl/crawl/crawl/bin/app_web
[Install]
WantedBy=multi-user.target
sudo systemctl enable app_web
sudo systemctl start app_web
sudo systemctl status app_web
运行应用程序爬网
./app_crawl
添加crontab
crontab -e
添加克朗时间
*/60 * * * * /root/actions-runner/crawl/crawl/crawl/bin/app_crawl crawl-article
*/20 * * * * /root/actions-runner/crawl/crawl/crawl/bin/app_crawl crawl-article-detail
重新加载克朗跑
sudo service cron reload