深入折腾scrapy之一:环境搭建 beta0.3(2013-2-4更新)

发表于:http://www.ballooncat.com/scrapy-setup.html

最近在深入折腾scrapy,先放出环境搭建教程一枚,随后放出更多关于scrapy配置,扩展方面的教程.教程为beta版,部分细节在实际环境中可能会有出入.

前言:

1.系统centos5.5,默认安装了python2.4,需要升级到python2.7+

安装教程包括:

sqlite3 + python2.7.3 + mysql5.1.55 + sphinx2.0.6 + easy_install + python_mysql + scrapy + nginx + uwsgi + Redis install guide

安装准备工作

1. 安装开发套件

yum install gcc gcc-c++ zlib zlib-devel make cmake libxml2 libxslt-devel openssl-devel imake automake libtool python-devel ncurses-devel

开始搭建环境:

pre_2.安装sqlite3
必须在安装python之前安装

wget -c http://www.sqlite.org/sqlite-autoconf-3071501.tar.gz
tar zxvf sqlite-autoconf-3071501.tar.gz
cd sqlite-autoconf-3071501
./configure
make
make install

cd ~

2. 安装python2.7.3

wget -c http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz
tar zxvf Python-2.7.3.tgz
cd Python-2.7.3
./configure
make && make install

mv /usr/bin/python /usr/bin/python_old_2.4
ln -s /usr/local/bin/python2.7 /usr/bin/python
python -V (显示2.7.3版本则为安装成功)
vim /usr/bin/yum
修改#!/usr/bin/python为#!/usr/bin/python2.4

cd ~

3.安装easy_install

wget -q http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py

4.安装mysql5.1.55

wget -c http://downloads.mysql.com/archives/mysql-5.1/mysql-5.1.55.tar.gz
tar zxvf mysql-5.1.55.tar.gz
cd mysql-5.1.55
sh BUILD/autorun.sh
./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-extra-charset=all -enable-thread-safe-client -enable-assembler --with-readline --with-big-tables --with-named-curses-libs=/usr/lib/libncursesw.so.5
make && make install
ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql
ln -s /usr/local/mysql/bin/mysqladmin /usr/local/bin/mysqladmin
groupadd mysql
useradd -g mysql mysql
chown -R mysql.mysql /usr/local/mysql/
cd /usr/local/mysql
mkdir var
chown -R root.mysql .
chown -R mysql /usr/local/mysql/var/
cp /root/mysql-5.1.55/support-files/mysql.server /etc/init.d/mysqld
chmod 700 /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
cp /root/mysql-5.1.55/support-files/my-medium.cnf /etc/my.cnf
/usr/local/mysql/bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/var
/etc/init.d/mysqld start
mysqladmin -u root password 123123
mysql -u root -p -S /tmp/mysql.sock

cd ~

5.安装sphinx

wget -c http://sphinxsearch.com/files/sphinx-2.0.6-release.tar.gz
tar zxvf sphinx-2.0.6-release.tar.gz
cd sphinx-2.0.6-release
./configure
make && make install
cd /usr/local/etc/
cp sphinx.conf.dist sphinx.conf

cd ~

6.安装mysql_python

wget -c http://downloads.sourceforge.net/project/mysql-python/mysql-python-test/1.2.3c1/MySQL-python-1.2.3c1.tar.gz?use_mirror=nchc
tar xzvf MySQL-python-1.2.3c1.tar.gz
cd MySQL-python-1.2.3c1
ln -s /usr/local/mysql/bin/mysql_config /usr/local/bin/mysql_config
ln -s /usr/local/mysql/lib/mysql/libmysqlclient* /usr/lib
ldconfig
python setup.py install
cd ~

7.安装scrapy

wget -c http://lxml.de/files/lxml-3.0.1.tgz
tar zxvf lxml-3.0.1.tgz
cd lxml-3.0.1
python setup.py install
cd ~
wget -c http://pypi.python.org/packages/source/T/Twisted/Twisted-12.2.0.tar.bz2#md5=9a321b904d01efd695079f8484b37861
tar jxvf Twisted-12.2.0.tar.bz2
cd Twisted-12.2.0
python setup.py install
wget http://pypi.python.org/packages/source/p/pyOpenSSL/pyOpenSSL-0.12.tar.gz
tar zxvf pyOpenSSL-0.12.tar.gz
cd pyOpenSSL-0.12
python setup.py install
easy_install scrapy

cd ~

8.安装uwsgi

wget -c http://projects.unbit.it/downloads/uwsgi-1.4.3.tar.gz
tar zxvf uwsgi-1.4.3.tar.gz
cd uwsgi-1.4.3
python setup.py install

cd ~

9. 安装Redis

wget https://redis.googlecode.com/files/redis-2.6.7.tar.gz
tar zxvf redis-2.6.7.tar.gz
cd redis-2.6.7
make && make install

easy_install redis

10.安装nginx

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.30.tar.gz
tar zxvf pcre-8.30.tar.gz
cd pcre-8.30
./configure
make && make install
wget http://sourceforge.net/projects/libpng/files/zlib/1.2.6/zlib-1.2.6.tar.gz/download
tar zxvf zlib-1.2.6.tar.gz
cd zlib-1.2.6
./configure
make && make install
wget http://nginx.org/download/nginx-1.1.9.tar.gz
tar zxvf nginx-1.1.9.tar.gz
cd nginx-1.1.9
mkdir -p /var/tmp/nginx
./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock --with-http_ssl_module --with-http_dav_module --with-http_flv_module --with-http_realip_module --with-http_gzip_static_module --with-http_stub_status_module --with-mail --with-mail_ssl_module --with-pcre=../pcre-8.30 --with-zlib=../zlib-1.2.6 --with-debug --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi
make && make install
vim /etc/init.d/nginx

输入:

#!/bin/bash
#
#chkconfig: - 85 15
#description: Nginx is a World Wide Web server.
#processname: nginx  

nginx=/usr/local/nginx/sbin/nginx
conf=/usr/local/nginx/conf/nginx.conf  

case $1 in
  start)
 echo -n "Starting Nginx"
 $nginx -c $conf
 echo " done"
  ;;  

  stop)
 echo -n "Stopping Nginx"
 killall -9 nginx
 echo " done"
  ;;  

  test)
 $nginx -t -c $conf
  ;;  

reload)
 echo -n "Reloading Nginx"
 ps auxww | grep nginx | grep master | awk ‘{print $2}‘ | xargs kill -HUP
 echo " done"
  ;;  

restart)
$0 stop
$0 start
  ;;  

  show)
 ps -aux|grep nginx
  ;;  

  *)
 echo -n "Usage: $0 {start|restart|reload|stop|test|show}"
  ;;  

esac
chkmod +x /etc/init.d/nginx
chkconfig --add nginx
chkconfig nginx on

11. 配置sphinx:
在/usr/local/sphinx/etc下创建scrapy.conf,写入:

source scrapy_source
{
type        = mysql
sql_host    = localhost
sql_user    = root
sql_pass    = 123123
sql_db      = python
sql_port    = 3306
sql_query_pre   = SET NAMES utf8
sql_query       = SELECT id,title,keywords,descrip,body FROM `data`
}
index scrapy_index
{
source      = scrapy_source
path        = /usr/local/sphinx/var/data/scrapy_index
docinfo     = extern
mlock       = 0
morphology  = none
min_word_len    = 1
html_strip  = 0
}

indexer
{
mem_limit = 128M
}

searchd
{
listen           = 9312
read_timeout     = 5
max_children     = 30
max_matches      = 1000
seamless_rotate  = 0
preopen_indexes  = 0
unlink_old       = 1
pid_file         = /usr/local/sphinx/var/log/searchd.pid
log              = /usr/local/sphinx/var/log/searcd.log
query_log        = /usr/local/sphinx/var/log/query.log
}

创建索引:

/usr/local/sphinx/bin/indexer -c ../etc/scrapy.conf --all

重新创建索引:

/usr/local/sphinx/bin/indexer -c ../etc/scrapy.conf --all --rotate

搜索测试:

/usr/local/sphinx/bin/search -c ../etc/scrapy.conf centos

beta0.2:

1. fix几处开发套件遗漏问题

2. fix scrapy安装过程中pyOpenssl问题

3. fix mysql安装步骤先后顺序问题

beta0.3:

1. fix一处python mysql扩展执行时找不到mysql库文件的问题

2. fix python redis扩展安装的遗漏

时间: 2024-12-30 04:04:23

深入折腾scrapy之一:环境搭建 beta0.3(2013-2-4更新)的相关文章

Scrapy 开发环境搭建

Scrapy 开发环境搭建很简单,我们搭建 Scrapy 开发环境是建立在 Eclipse + PyDev 搭建 Python 开发环境 的基础上的. 打开命令行输入 conda list 说明: conda list 是用来查看 Anaconda 安装了哪些库 查看 Anaconda 是否已经安装 Scrapy 库,如果没有则在命令行输入 conda install scrapy=1.3 进行安装. 说明: scrapy=1.3 指明让 Anaconda 安装 1.3 版本的 Scrapy 如

Ionic3 环境搭建以及基础配置实现(更新中)

GitHub:https://github.com/Teloi 环境配置输入以下命令安装 Ionic (如果刚才设置了淘宝镜像源,可以使用 cnpm 代替 npm):npm install -g ionic需要注意的是,如果之前安装过 Ionic 2 的 beta 版本,需要先卸载掉:npm uninstall -g ionic然后重新安装.ionic -version查看当前版本 截至8月21日时的版本为3.9.2 生成目录:ionic start Tests blank 启动项目npm in

Cocos2d-X-3.0 之后的版本的环境搭建

 Cocos2d-X-3.0 之后的版本的环境搭建 由于cocos2d游戏开发引擎更新十分频繁,官方文档同步不够及时和完善.所以不要照着官方文档来照做生成工程. <点击图片就能进入网站> 具体的步骤: 1.获取cocos2d-X的源码v3.6版本 然后解压到随便什么位置,比如这里就放在桌面上,文件名cocos2d-x-3.6 2.使用5.1以上版本的XCode 3.将cocos2d-x-3.6中的setup.py直接拖到刚刚打开的终端,然后回车. 然后提示需要做一些环境变量的配置,第一个提示安

Learning Scrapy:《精通Python爬虫框架Scrapy》Windows环境搭建

之前用爬虫抓点数据的时候基本上就是urllib3+BeautifulSoup4,后来又加入requests,大部分情况就够用了.但是最近心血来潮想学一下Scrapy,于是找了本书——<精通Python爬虫框架Scrapy>.内容算是比较可以的,但是按书中附录搭建环境着实折腾了一点时间,于是想把碰到的问题总结一下,让大家也少走点弯路. 进入正题之前,有几点要说明一下: 安装这个环境有什么用?这个环境就是一个服务器,有需要你抓的网站,不会因现实中的网站改版而造成代码失效,书中测试代码的网站基本上都

linux下scrapy环境搭建

最近使用scrapy做数据挖掘,使用scrapy定时抓取数据并存入MongoDB,本文记录环境搭建过程以作备忘 OS:ubuntu 14.04  python:2.7.6 scrapy:1.0.5 DB:MongoDB 3 ubuntu14.04内置python2.7,因此python及pip安装不再赘述. 一.安装scrapy pip install Scrapy  由于scrapy相关依赖较多,因此在安装过程中可能遇到如下问题: 1.ImportError: No module named 

Linux交叉开发环境搭建 —— 效率之源

楼主今天终于把所有Linux开发环境需要的软件下载完毕了.虽然以前也是搭建过的,时间久了又折腾了一晚上. 交叉环境: Windows.Linux文件共享 SecureCRT 连接虚拟机终端 工具: VirtualBox ubuntu-16.04-desktop-amd64.iso(ubuntu官网下载) SecureCRT Source Insight 虚拟机搭建: 检查bios虚拟技术功能开启 新建虚拟机,选择创建虚拟硬盘,其余均默认 点击新建虚拟机设置->存储->选中没有光盘->点击

hexo的环境搭建

今天开始折腾下hexo,安装起来还是有点坑,简单记录下,会不断更新. 网上安装的文章多不胜数,当然首先还是得去看看官方的文档. 按照官方的文档,不知大家是否顺利,本人搭建环境的时候并不顺利. 明确要安装两样的东西 git node.js git的话安装轻松,本人是的机子是ubuntu14,直接使用apt-get install安装就可以了. node.js的安装兜了几个圈子,还是安装好了.(官方提倡用nvm进行安装,大家都是小白不懂,那就安装官方的吧) 不知其他朋友按照官方的文档安装步骤是否能安

Ubuntu Desktop基本办公环境搭建

Ubuntu Desktop基本办公环境搭建 一如前面所强调的, linux系统是面向开发人员友好的,而对office办公人员并不友好 . 如果是重度的office办公需求人员,不建议使用linux desktop,而建议使用windows,基本上所有的大型office的应用软件的最优体验方案都是在windows上实现的. 但是本文还是会花一定的篇幅来讲解如何在Linux(Ubuntu)上面搭建办公应用环境,因为开发人员还是会有一定程序的office办公需求,这些应用需求在linux上也可以找到

Solr4.8.0源码分析(4)之Eclipse Solr调试环境搭建

Solr4.8.0源码分析(4)之Eclipse Solr调试环境搭建 由于公司里的Solr调试都是用远程jpda进行的,但是家里只有一台电脑所以不能jpda进行调试,这是因为jpda的端口冲突.所以只能在Eclipse 搭建Solr的环境,折腾了一小时终于完成了. 1. JDPA远程调试 搭建换完成Solr环境后,对${TOMCAT_HOME}/bin/startup.sh 最后一行进行修改,如下所示: 1 set JPDA_ADDRESS=7070 2 exec "$PRGDIR"