完整的 scrapy 爬虫示例,爬取股票和新闻数据
完整的 Scrapy 爬虫示例,爬取股票和新闻数据。
本项目爬取同花顺股票信息和新闻,为作者硕士在读时提供研究数据,仅作研究用途,爬取手段及其温柔,且都为公开信息,研究结束即已停止使用。现只作为 Scrapy 爬虫 demo,仅供作为教程使用。
技术栈:
实现的爬虫:
本项目使用 Docker 部署。
构建后的容器:
git clone https://github.com/goozp/ths-spider-example.git
Docker 环境配置: .env
Mongo 配置:mongodb/docker-entrypoint-initdb.d/mongo-init.js
db.createUser(
{
user: "user",
pwd: "userpwd",
roles: [
{
role: "readWrite",
db: "stock"
}
]
}
);
修改 user
和 pwd
,初始化创建的用户名和密码。
spiders/quan_sys_spiders/settings.py
MONGO_URI = 'mongodb://user:userpwd@qs-mongo/stock'
MONGO_DATABASE_STOCK = 'stock'
cd ths-spider-example
docker-compose up -d
注:MongoDB 在 Windows 下不能使用 ./data/mongo:/data/db
绑定数据卷;只能以另一种绑定形式存在:mongodata:/data/db
使用这种模式,在 Linux 中的数据存储在: /var/lib/docker/volumes/quan-sys-env_mongodata
启动后将会开始定时爬取数据。每天晚上九点执行:
scrapy crawl ths-stock
scrapy crawl ths-stock-daily
scrapy crawl ths-stock-news
每两分钟执行:
scrapy crawl ths-news
docker-compose stop
docker-compose start
docker-compose down
docker-compose up -d
测试阶段增加 -v 参数,删除绑定的数据卷,上线后不要这样做:
docker-compose down -v
docker-compose up -d
docker exec -it qs-spider /bin/bash
Start Spider:
scrapy crawl ths-stock