文档章节

20-Scrapy项目部署到Linux服务器

不忘初心_
 不忘初心_
发布于 2017/07/10 17:57
字数 1582
阅读 225
收藏 0

1.服务器

# 查看Linux服务器版本
# lsb_release -a 

LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch
Distributor ID: CentOS
Description:    CentOS release 6.5 (Final)
Release:        6.5
Codename:       Final

# 自带python2.x版本
# python

Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

2.相关软件

    SecureCRT:一款连接Linux服务器,并使用shell命令对服务器进行操作的一款软件

    SecureFX:用于上传文件到服务器

3.资源网址

    ①、Python各大版本:https://www.python.org/downloads/source/

    ②、pip资源:https://pypi.python.org/pypi

    ③、其他准备工作:恶补Linux常用命令、Vim常用命令。。。

# 1、建立目录:mkdir 目录名
# 2、删除空目录:rmdir 目录名
# 3、无条件删除子目录:rm -rf 目录名
# 4、改变当前目录:cd 目录名 (
# 	进入用户home目录:cd / 	
# 	进入上一级目录:cd ..
# )
# 5、查看自己所在目录:pwd
# 6、查看当前目录大小:du
# 7、显示目录文件列表:ls -l (-a:增加显示隐含目录)
# 	其中:蓝:目录
# 		      绿:可执行文件
# 		      红:压缩文件
#  		      浅蓝:链接文件
# 		      灰:其他文件
# 		      红底白字:错误的链接文件
# 8、浏览文件:more 文件名.txt; 
# 			       less 文件名.txt
# 9、复制文件:cp 源文件 目标文件 (-r:包含目录)
# 10、查找文件:
# 	(1):find
# 	(2):locate 命令名
# 11、链接:
# 	(1)建立hard链接:ln 来源文件 链接文件(-d:创建目录链接)
# 	(2)建立符号/软链接:ln -s 来源文件 链接文件
# 12、进入后为命令模式:
# 	(1)插入i
# 	(2)打开0
# 	(3)修改c
# 	(4)取代r
# 	(5)替换s
# 14、
# 	命令模式-->编辑模式(a/i)
# 	编辑模式-->命令模式(Esc)
# 	命令模式-->末行模式(:)
# 	/… 进入搜索模式
# 15、:w/w newfile保存
# 	  :q/q!退出iv;
# 	  :wq保存退出
# 16、wget url:远程服务器下载命令
# 17、清除缓存:rm -rf ~/.cache/
# 18、lsb_release -a :查看服务器的版本信息

# 19、tar.gz类
# 	(1)解压:tar -xvzf 文件.tar.gz
# 	(2)tar.gz解至tar:gzip -d 文件.tar.gz
# 	(3)压缩:gzip 待压缩文件
# 20、tar未压缩类
#	(1)解包:tar -xvf 文件.tar
#	(2)打包:tar -cvf 文件.tar 文件列表
# 21、zip类
# 	(1)解压:unzip 文件.zip -d dir
# 	(2)压缩:zip zipfile 待压缩文件列表
# 22、bz2类
#	(1)解压:bunzip2 文件.bz2或bzip2 -d 文件.bz2
#	(2)压缩:bzip2 待压缩文件
# 23、z类
#	(1)解压:uncompress 文件.z
#	(2)压缩:compress 文件

4、安装python3.x

    ①、远程下载:wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz

    ②、解压缩:tar -zxvf Python-3.6.1-tgz

    ③、切换目录:cd Python-3.6.1-tgz

    ④、配置文件:./configure  - -prefix=/usr/local/python3.6

        A:prefix:表示安装时环境变量文件安装到指定目录下,而不是分别到bin、lib等文件目录下

        B:--enable-static:生成静态链接库

        C:—enable-shared:生成动态链接库

    ⑤、编译:make

    ⑥、安装:make install

    ⑦、添加软链:<官方包中应该默认携带有setuptools和pip工具>

        ln -s  /usr/local/python3.6/bin/python3  /usr/bin/python3

        ln -s  /usr/local/python3.6/bin/pip3  /usr/bin/pip3

注:常遇错误解决

    ①、Error:python3: error while loading shared libraries: libpython3.6m.so.1.0<python3>

    解决:cp -R -f /usr/local/python3.6/lib/* /usr/lib64/ (最前面加\<斜杠>表示忽略询问提示)

    ②、Error:pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available<pip3 install xxx>

    解决: A-yum install openssl-devel

         B-CD到Python-3.6.1的解压目录下,Vim Modules/Setup,取消注释行_socket socketmodule.、SSL=/usr/local/ssl _ssl _ssl.c\-DESE_SSL -l$(SSL)/include -l$(SSL)/include/openssl\-L$(SSL)/lib -lssl -lcrypto(去掉#号),完成后:wq保存退出

             C-重复以上④、⑤、⑥步骤

结果:

#python3

#Python 3.6.1 (default, Jul 10 2017, 15:31:23) 
#[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux
#Type "help", "copyright", "credits" or "license" for more information.
#>>>  exit()
#:

#pip3 

#Usage:   
#  pip <command> [options]

#Commands:
#  install                     Install packages.
#  download                    Download packages.
#  uninstall                   Uninstall packages.
#  freeze                      Output installed packages in requirements format.
#  list                        List installed packages.
#  show                        Show information about installed packages.
#  check                       Verify installed packages have compatible dependencies.
#  search                      Search PyPI for packages.
#  wheel                       Build wheels from your requirements.
#  hash                        Compute hashes of package archives.
#  completion                  A helper command used for command completion.
#  help                        Show help for commands.

#General Options:
# ……

5、部署Scrapy

    ①、yum install  openssl openssl-devel sqlite-devel :这是我在在先安装scrapy运行spider发现缺少的一些组件,每个人的可能有所不同,一般在网上搜索报错信息即可找到解决办法

    ②、pip3 install twisted:安装失败,使用wget下载源码安装

        A:下载 wget https://twistedmatrix.com/Releases/Twisted/17.5/Twisted-17.5.0.tar.bz2

        B:解压 tar -jxvf Twisted-17.5.0.tar.bz2

        C:cd进入Twisted-17.5.0目录下,python3 setup.py install安装即可

    ③、pip3 install scrapy:不出意外的话其他的一些组件会自动下载下来并安装,等待结束即可。

    ④、设置软链:ln -s /usr/local/python3.6/bin/scrapy /usr/bin/scrapy

    ⑤、此时输入scrapy,如安装成功会出现如下类似输出

Scrapy 1.4.0 - no active project

Usage:
  scrapy <command> [options] [args]

Available commands:
  bench         Run quick benchmark test
  fetch         Fetch a URL using the Scrapy downloader
  genspider     Generate new spider using pre-defined templates
  runspider     Run a self-contained spider (without creating a project)
  settings      Get settings values
  shell         Interactive scraping console
  startproject  Create new project
  version       Print Scrapy version
  view          Open URL in browser, as seen by Scrapy

  [ more ]      More commands available when run from project directory

Use "scrapy <command> -h" to see more info about a command

遇到的错误:

    ①、自带OpenSSL和安装pyOpenSSL冲突的问题

    描述:输入openssl version,如出现openssl版本输出则表示默认装有OpenSSL;当执行scrapy crawl spidername爬虫之后最底部出现一个from OpenSSL import SLL找不到的问题;我尝试输入python进入python2.x运行环境,输入from OpenSSL import SLL没问题,然而输入python3进入python3.x运行环境,输入from OpenSSL import SLL则报SSL模块找不到的错误。

    解决:这个问题折磨了我很久,尝试了很多方法,后来我将自带的OpenSSL版本make uninstall之后,恢复正常了。。。。

# openssl version

-bash: openssl: command not found

6.使用

    使用SecureFX将上一节的TBMM小爬虫上传到了服务器

# cd /data/python
# ll
total 5180
-rw-r--r--  1 root root  5278176 May 25 21:09 openssl-1.1.0f.tar.gz
drwxr-xr-x  3 root root     4096 Jul 10 15:50 Projects
drwxr-xr-x 18  501 www      4096 Jul 10 15:31 Python-3.6.1
drwxr-xr-x  7  501 games    4096 Jul 10 14:11 Twisted-17.5.0

# cd Projects/ScrapyTemplate
# scrapy crawl TBMM

DBManagerHelp数据库连接成功 <pymysql.connections.Connection object at 0x7f2f98661e48>
新的请求: https://mm.taobao.com/json/request_top_list.htm?page=1
DBManagerHelp开始: <TBMMSpider 'TBMM' at 0x7f2f989ef748>
新的请求: https://mm.taobao.com/json/request_top_list.htm?page=2
…………………………


注:爬虫中的数据库信息改为服务器的数据库账户密码

    爬虫运行成功,且数据也成功插入数据库中。

© 著作权归作者所有

不忘初心_
粉丝 2
博文 21
码字总数 17500
作品 0
杭州
程序员
私信 提问
学会运用爬虫框架 Scrapy (五) —— 部署爬虫

图片来自 unsplash 本文是 Scrapy 爬虫系列的最后一篇文章。主要讲述如何将我们编写的爬虫程序部署到生产环境中。我们使用由 scrapy 官方提供的爬虫管理工具 scrapyd 来部署爬虫程序。 1 为什...

猴哥Yuri
2017/10/09
0
0
scrapy 进阶使用

前段时间我写了一篇《scrapy快速入门》,简单介绍了一点scrapy的知识。最近我的搬瓦工让墙了,而且我又学了一点mongodb的知识,所以这次就来介绍一些scrapy的进阶知识,做一些真正有用的爬虫...

乐百川
2017/12/05
0
0
《Learning Scrapy》(中文版)第11章 Scrapyd分布式抓取和实时分析

序言 第1章 Scrapy介绍 第2章 理解HTML和XPath 第3章 爬虫基础 第4章 从Scrapy到移动应用 第5章 快速构建爬虫 第6章 Scrapinghub部署 第7章 配置和管理 第8章 Scrapy编程 第9章 使用Pipelin...

seancheney
2017/09/23
0
0
Python Scrapy 爬虫(四):部署与运行

接上篇,在上篇中,我们已经在服务器上搭建好了 Python3 环境以及对应的 virtualenv 虚拟环境了。接下来,我们开始把代码部署到我们的服务器环境并运行。 在部署我们的代码到服务器前,我们来...

雨林_a1d6
2018/06/01
0
0
Python未来有哪几个最具有潜力发展方向?

近些年来,Python语言的热度越来越高,因为Python简单,学起来快,是不少新手程序员入门的首选语言。 Python是一门脚本语言,因为Python编程语言能将其他各种编程语言写的模块粘接在一起,所...

Python燕大侠
2018/06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

趣谈预留实例券,一文搞懂云上省钱最新玩法

摘要: 一文搞懂时髦的预留实例券(RI) ECS近期推出了预留实例券(Reserved Instances),简称RI,这东西很cool,今天我们聊聊这个。 首先这篇Blog不是文档,读完后想详细了解文档的朋友请点...

zhaowei121
26分钟前
1
0
js 将json字符串转换为json对象的方法解析

js 将json字符串转换为json对象的方法解析 将json字符串转换为json对象的方法。在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之...

城市之雾
26分钟前
1
0
国外青少年最喜爱的聊天 app,竟然是 Google Docs

简评: 这还真不是标题党,Google Docs 的协作中内置了实时聊天的功能,也可以进行 comments,颇有种现代「传纸条」的既视感。其实国内的石墨文档、腾讯文档等协作工具也有类似的效果,本文很...

极光推送
31分钟前
1
0
用zuul将微服务的多个swagger api文档聚合成一个文档

1.在每个服务的pom中添加以下依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId></dependency> 注意:仅仅需要添加这个就行。zuul负......

xtof
31分钟前
1
0
为什么取不到metamask的账号?

当你使用Metamask测试以太坊DApp时,如果出现莫名其妙的问题,检查一下web3.eth.accounts是否可以获取到账户,如果不能获取的话,那么最大的可能是你使用了新版的Metamask,并且默认启用了隐...

汇智网教程
32分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部