分类目录归档:Python

ansible的安装与运行

1.采用EPEL-release源安装,简单安全。

yum install epel-release -y
yum install ansible –y

2.验证

ansible 127.0.0.1 -m ping
---------------------
返回结果
127.0.0.1 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}
 
example:
https://github.com/leucos/ansible-tuto

机器学习的一些库

Gensim是一个相当专业的计算相似度的Python工具包。
在文本处理中,比如商品评论挖掘,有时需要了解每个评论分别和商品的描述之间的相似度,以此衡量评论的客观性。
评论和商品描述的相似度越高,说明评论的用语比较官方,不带太多感情色彩,比较注重描述商品的属性和特性,角度更客观。
http://radimrehurek.com/gensim/

————————————-
图像识别类库
https://github.com/tesseract-ocr/tesseract

原本由惠普开发的图像识别类库tesseract-ocr已经更新到2.04, 就是最近Google支持的那个OCR。原先是惠普写的,现在Open source了。

ibus输入法故障

sudo yum remove ibus --会将所有的输入法删除
安装ibus,ibus-table
sudo yum install ibus ibus-table –这样只会安装ibus的输入框架
sudo yum install ibus-table-wubi
yum install “@Chinese Support”
———————–
解决 CentOS 6.x 升级 Python2.7 后 Ibus 输入法无法使用问题
/usr/libexec/ibus-ui-gtk
/usr/ bin/ibus-setup
/usr/libexec/ibus-engine-table

将以上三个文件中的 “exec python” 修改为 “exec python26”

批量部署scrapy爬虫

1.首先安装scrapyd。
2.在爬虫scrapy.cfg文件中,清加如下列表:

[deploy:s158] #冒号隔开。
url = http://192.168.1.158:6800/

[deploy:s161]
url = http://192.168.2.161:6800/

[deploy:s88]
url = http://10.199.3.88:6800/

3.在与scrapy.cfg同级目录下建立任意py文件,如depoy.py文件,在其添加如下代码。

# -*- coding: utf-8 -*-
import os

project = os.path.dirname(__file__)
project = os.path.basename(project)
hosts = ['s158', 's161', 's88']
for it in hosts:
command = 'scrapy deploy %s -p %s' %(it, project)
os.system(command)

———————————————-

sh脚本:
#!/bin/sh

# you should modify some parameter below.

project='webproxy'

# hosts' string are from scrapy.cfg file at the same directory.
hosts="s2 s254 s102"

# ---------------------------------------------
# code body.
path=$(dirname $(readlink -f $0))
prjdir="$path/$project"

if [ ! -d "$prjdir" ]; then
echo ""
echo "can't find the path like ${prjdir}."
echo "make sure the spiders were done in this path."
echo ""
exit
fi

echo ""
echo "----"
echo "ready to deploy '$project' to [$hosts]"
echo "----"
echo ""

read -p "Do you want to continue [Y/N]?" answer
case $answer in
Y | y)
echo ""
for it in $hosts
do
scrapy deploy $it -p $project
done
;;
*)
echo ""
echo "nothing to do, good bye!!"
;;
esac
echo ""
echo ""

使用国内镜像源来加速python pypi包的安装

pipy国内镜像目前有:
http://pypi.douban.com/ 豆瓣
http://pypi.hustunique.com/ 华中理工大学
http://pypi.sdutlinux.org/ 山东理工大学
http://pypi.mirrors.ustc.edu.cn/ 中国科学技术大学
对于pip这种在线安装的方式来说,很方便,但网络不稳定的话很要命。使用国内镜像相对好一些,如果想手动指定源,可以在pip后面跟-i 来指定源,比如用豆瓣的源来安装web.py框架:
pip install web.py -i http://pypi.douban.com/simple
注意后面要有/simple目录!!!
要配制成默认的话,需要创建或修改配置文件(linux的文件在~/.pip/pip.conf,windows在%HOMEPATH%\pip\pip.ini),修改内容为:
code:
[global]
index-url = http://pypi.douban.com/simple
————————
Configuration
Config file
pip allows you to set all command line option defaults in a standard ini style config file.
The names and locations of the configuration files vary slightly across platforms.
On Unix and Mac OS X the configuration file is: $HOME/.pip/pip.conf
On Windows, the configuration file is: %HOME%\pip\pip.ini

You can set a custom path location for the config file using the environment variable PIP_CONFIG_FILE.

The names of the settings are derived from the long command line option, e.g. if you want to use a different package index (–index-url) and set the HTTP timeout (–default-timeout) to 60 seconds your config file would look like this:
[global]
timeout = 60
index-url = http://download.zope.org/ppix

———————————
方法2:配置方式修改
easy_install:
1.打开pydistutils.cfg
vi ~/.pydistutils.cfg
——
2.写入以下内容
[easy_install]
index_url = http://e.pypi.python.org/simple
————————
pip:
1.打开pip.conf
vi ~/.pip/pip.conf
2.写入以下内容
[global]
index-url = http://e.pypi.python.org/simple
速度比较快的国内镜像,都来自清华大学,服务器在北京。公网的服务器为官方镜像
公网:http://e.pypi.python.org/simple
教育网:http://pypi.tuna.tsinghua.edu.cn/simple

代理:唯快不破

网上免费代理失效率很高,其原因不外乎以下几种:
1.大量代理代理服务器,主要是由肉鸡主机构成,有些是用户机被木马了,也有一些是VPS,其中也有一些高质量的肉鸡服务器,但这种高质量的代理一般不会免费提供给用户。
2.网上太多人在玩爬虫类或群发类的开发,对这种免费代理的需求较高,这么多人在使用这些质量较差的代理,极有可能导致代理处理不过来而宕机
3.网管发现了,关闭了代理。
4.修复了漏洞。

所以说要想抢得更好的代理资源,需要如下:
1.新代理刚发现,就马上测试并使用,不要考虑存放太久,否则被别人使用过多了,它就更容易失效。
2.在进行代理可行性测试时,避免不必要的浪费测试。
3.测试的代理的连通性,必须选择高质量地址,首先CDN资源如query.min.js,再到一些大站如qq首页等。

IP位置定位参考库

当前有两大IP参考库,记录如下:
http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest,这是APNIC亚太地区的IP分配地址表,全球有五大IP分配机构,其它是AfriNIC非洲地区、ARIN美洲地区、LACNIC拉丁美洲和加勒比海、RIPE欧洲地区。
ftp://ftp.arin.net/pub/stats/arin/delegated-arin-latest,
ftp://ftp.ripe.net/ripe/stats/delegated-ripencc-latest,
ftp://ftp.afrinic.net/pub/stats/afrinic/delegated-afrinic-latest,
ftp://ftp.apnic.net/pub/stats/apnic/delegated-apnic-latest,
ftp://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-latest ,
http://www.cz88.net/,这是国内有名的纯真库。
python中的ip和int转换算法:

def ip_to_int(iptxt):
ipf = lambda x:sum([256**j*int(i) for j,i in enumerate(x.split(‘.’)[::-1])])
return ipf(iptxt)

def int_to_ip(ip):
ipf = lambda x: ‘.’.join([str(x/(256**i)%256) for i in range(3,-1,-1)])
return ipf(ip)

scrapy所依赖的环境各版本

目前稳定使用scrapy的依赖环境如下:
pip install Twisted==14.0.2 w3lib==1.11.0 queuelib==1.2.2 lxml==3.3.0 pyOpenSSL==0.12 cssselect==0.9.1 six==1.9.0 scrapy==0.24.4 pycurl==7.19.5.1 django==1.4.18 mysql-python==1.2.5 service_identity==14.0.0 selenium==2.44.0 simplejson==3.6.5
pip install Twisted==14.0.2 https://pypi.python.org/packages/source/T/Twisted/Twisted-14.0.2.tar.bz2
pip install w3lib==1.11.0
pip install queuelib==1.2.2
pip install lxml==3.3.0
pip install pyOpenSSL==0.12
pip install cssselect==0.9.1
pip install six==1.9.0
pip install scrapy==0.24.4
pip install pycurl==7.19.5.1
pip install django==1.4.18
pip install mysql-python==1.2.5
pip install service_identity==14.0.0
pip install selenium==2.44.0
pip install simplejson==3.6.5
【目前列出的版本为在Centos5.8上运行的版本,现移植到6.6后,仍保持一致,按如下版本安装,可解决SSL或HTTPS的崩溃BUG,2015年8月14日备注
characteristic (14.3.0)
cssselect (0.9.1)
Django (1.4.18)
lxml (3.3.0)
MySQL-python (1.2.5)
pip (1.5.6)
pyasn1 (0.1.7)
pyasn1-modules (0.0.5)
pycurl (7.19.5.1)
pyOpenSSL (0.12)
pypm (1.4.3)
queuelib (1.2.2)
Scrapy (0.24.4)
selenium (2.44.0)
service-identity (14.0.0)
setuptools (5.2)
simplejson (3.6.5)
six (1.9.0)
Twisted (14.0.2)
w3lib (1.11.0)
wsgiref (0.1.2)
zope.interface (4.1.2)