scrapy docker 基本部署使用
pip install scrapy
scrapy startproject appdemoa. 项目代码结构
├── Dockerfile
├── README.md
├── appdemo
│   ├── __init__.py
│   ├── __pycache__
│   ├── items.py
│   ├── middlewares.py
│   ├── pipelines.py
│   ├── settings.py
│   └── spiders
│       ├── __init__.py
│       ├── __pycache__
│       └── book_spider.py
└── scrapy.cfg
b. 主要代码是book_spider.py
import scrapy
class BookSpider(scrapy.Spider):
    name="appdemo"
    start_urls=["http://books.toscrape.com/"]
    def parse(self,response):
        for book in response.css("article.product_pod"):
            name= book.xpath("./h3/a/@title").extract_first()
            price=book.css("p.price_color::text").extract_first()
            yield {
                "name":name,
                "price":price,
            }
            next_url=response.css("ul.pager li.next a::attr(href)").extract_first()
            if next_url:
                next_url=response.urljoin(next_url)
                yield scrapy.Request(next_url,callback=self.parse)
c. Dockerfile
FROM python:3.5
RUN  pip install scrapy
VOLUME [ "/data" ]
WORKDIR /myapp
COPY . /myapp
ENTRYPOINT [ "scrapy","crawl","appdemo","-o","/data/appdemo.csv" ]
备注: 为了简单使用了python:3.5 基础镜像,alpine 镜像存在包依赖的问题a. 命令行运行
scrapy crawl appdemo -o myinfo.csv
b. docker build
docker build -t myscrapy .
docker run -it -v $PWD/mydata:/data myscrapy
cat $PWD/mydata/appdemo.csv
c. 直接使用dockerhub 镜像运行
docker run -it -v $PWD/mydata:/data dalongrong/scrapydockerdemohttps://docs.scrapy.org/en/latest/
https://github.com/rongfengliang/scrapydockerdemoscrapy docker 基本部署使用的更多相关文章
- Docker 容器部署 Consul 集群
		Docker 容器部署 Consul 集群 一.docker安装与启动1.1安装docker[root@localhost /]# yum -y install docker-io 1.2更改配置文件 ... 
- 在docker里部署网络服务
		之前试着玩玩docker有一阵子了,今天算是头一回正式在docker里部署网络服务. 本来想和lxc差不多的东西那自然是手到擒来,没想到还是改了很多. 第一个遇到的问题是,远程连到docker宿主机干 ... 
- 设想 Docker 下部署 KVM
		设想 Docker 下部署 KVM 一.安装 $ yum -y install kvm # kvm base , must $ yum -y install libvirt -y # libvirtd ... 
- 在Docker下部署Nginx
		在Docker下部署Nginx 在Docker下部署Nginx,包括: 部署一个最简单的Nginx,可以通过80端口访问默认的网站 设置记录访问和错误日志的路径 设置静态网站的路径 通过proxy_p ... 
- 使用docker安装部署Spark集群来训练CNN(含Python实例)
		使用docker安装部署Spark集群来训练CNN(含Python实例) http://blog.csdn.net/cyh_24/article/details/49683221 实验室有4台神服务器 ... 
- Docker 打包 部署
		Docker 打包 部署 一贯的开场白,大家好: 开始学习Spring Boot ,同时也再学习 Maven 自动化构建. 项目的部署环境是 Linux 服务器,Docker容器. 之所以写这篇博客 ... 
- docker环境部署
		docker环境部署 1 查看当前系统版本 只支持CentOS7版本的系统,如果不是的话,可以让项目方进行重装或者系统内核升级. [root@bogon bin]# cat /etc/redhat-r ... 
- 基于docker 如何部署surging分布式微服务引擎
		1.前言 转眼间surging 开源已经有1年了,经过1年的打磨,surging已从最初在window 部署的分布式微服务框架,到现在的可以在docker部署利用rancher 进行服务编排的分布式微 ... 
- 从头认识一下docker-附带asp.net core程序的docker化部署
		从头认识一下docker-附带asp.net core程序的docker化部署 简介 在计算机技术日新月异的今天, Docker 在国内发展的如火如荼,特别是在一线互联网公司, Docker 的使用是 ... 
随机推荐
- jQuery 中$.ajax()方法参数详解
			$.ajax({ url:'test.do', data:{id:,name:'xiaoming'}, type:'post', dataType:'json', success:function(d ... 
- webBrowser.DocumentText重新赋值无效解决方法
			因为webBrowser这个控件的webBrowser.DocumentText是异步的,所以要自己调用刷新: webBrowser.Navigate("about:blank") ... 
- 这真是奇葩的js题目
			url:http://javascript-puzzlers.herokuapp.com/ 有兴趣的可以一看,算是比较偏门自我感觉 
- 重新学习MySQL数据库8:MySQL的事务隔离级别实战
			重新学习Mysql数据库8:MySQL的事务隔离级别实战 在Mysql中,事务主要有四种隔离级别,今天我们主要是通过示例来比较下,四种隔离级别实际在应用中,会出现什么样的对应现象. Read unco ... 
- BZOJ 1010 [HNOI2008]玩具装箱 (斜率优化DP)
			题目链接 http://www.lydsy.com/JudgeOnline/problem.php?id=1010 思路 [斜率优化DP] 我们知道,有些DP方程可以转化成DP[i]=f[j]+x[i ... 
- Markdown - 让网络书写变得简单
			概述 宗旨 Markdown 的目标是实现「易读易写」. 可读性,无论如何,都是最重要的.一份使用 Markdown 格式撰写的文件应该可以直接以纯文本发布,并且看起来不会像是由许多标签或是格式指令所 ... 
- js鼠标键禁用功能
			页面完全禁用右键 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ... 
- Java复习4.数组初始化.
			Java复习4.Java中的数组声明方式 20131004 1.数组声明和初始化, 数组元素和变量一样,可以在定义的时候i进行初始化.数组元素的初始化工作实在编译阶段完成的,可以减少运行时间. 在初 ... 
- KindEditor富文本编辑框和BeautifulSoup的基本使用
			KindEditor富文本编辑框 1.进入官网 2.下载 官网下载:http://kindeditor.net/down.php 本地下载:http://files.cnblogs.com/files ... 
- 【WebGL】1.WebGL简介
			OpenGL和WebGL基本概念 OPEN GL:一个跨编程语言.跨平台的编程接口规格的专业的图形程序接口.它用于三维图像(二维的亦可),是一个功能强大,调用方便的底层图形库. WebGL:一个3D ... 
