Linux上运行爬虫项目

在阿里云的Linux上安装了docker镜像,然后在docker镜像中运行爬虫项目
首先要有项目.
然后将项目文件放入docker镜像中
然后就运行.

问题一:docker镜像中的Python没有requests第三方库

—>我就pip install requests
结果又遇到没有 pip install
—>然后就看怎么能装上pip install
在docker环境中先输入wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py
下载完成之后输入python3 get-pip.py(这一步稍微费点时间,网不好会报错)
我的docker镜像中Python的命令是Python3
这样pip install 就能用了
然后就pip install requests

问题二:怎么将项目放到docker镜像中

—>查看容器ID
docker ps -aqf "name=centos8python3"
—>将文件从宿主机复制到容器中的指定路径下docker cp /root/cloudmusic/cloudmusic.py centos8python3:/root/cloudmusic/
结果出现了这种结果:no such directory
意思就是没有这个路径
这里是我的问题,忘创建文件了.
因为第一次做的时候已经创建过了,第二次再做的时候给忘了.
—>创建cloudmusic_spider文件夹和Python.txt(保存爬虫项目运行结果)
mkdir cloudmusic_spider
touch python.txt
---->重新复制
依然报错no such directory
这里是我的命令写错了,应该是复制到cloudmusic_spider但是我是cloudmusic因为tab补全不是显示的docker镜像中的路径
—>复制成功

启动项目

又缺少lxml第三方库
pip install lxml
—>运行项目
结果直接在我的黑窗口显示乱码结果
因为我的命令python3 cloudmusic.py
因此重新修改命令python3 cloudmusic.py > /root/cloudmusic_spider/python.txt
运行成功!
舒服了啊!

后续

爬成功之后

爬了三个小时,爬完了,在Linux上vim cloudmusic.txt感觉不是很好…全是乱码
这样我就有两个思路

  • 在Linux系统下修改文件编码格式
  • 先复制到Windows系统中再看情况
    为了稳妥,我先拿出来

把文件复制到Windows下

先从镜像中提出来
docker cp centos8python3:/root/cloudmusic_spider/cloudmusic.txt /root/cloudmusic/
命令在宿主机窗口下输入!
然后就是下载到本地了
然后打开,一切正常.因此可以看出在Linux下仅仅是因为编码的问题.

在Linux中修改文件编码

在宿主机中也显示正常
那就是在镜像中的编码有问题(系统编码的问题)
–>修改镜像中的系统编码
docker exec -it centos8python3 /bin/bash
然后试图给镜像添加utf8编码
找到了一个localedef的命令
这个可以加载utf8的字符集,但是还没学会怎么用
这个坑日后再填.
留个连接http://blog.chinaunix.net/uid-23842323-id-2656507.html

你可能感兴趣的:(docker,爬虫,python,docker,linux,centos)