Author Archives: coder4

设计网页爬虫需注意的问题

最近有空的时候在读Larbin的源代码,虽然是03年的了,但是很多细节都考虑的很周到,记录一下细节问题吧。

1、针对同一IP/HOST,不可访问过频繁,最好按其进行队列。

2、注意处理、过滤url后缀,以及Content-Type,我觉得Content-Type才是王道吧。

3、注意去重的问题,包括URL去重和网页内容去重。特别是有的网站是多个域名,很可能爬到实际内容重复,只是url不同的。Larbin中URL去重用的是简单的比特位Hash表。

看到了再继续更新。[......]

继续阅读

关于Cassandra占用8080端口的问题

今天需要再一台服务器上开两个cassandra,更改了storage-conf.xml中的port后,依然出现“java.net.BindException: Address already in use”的错误,感觉非常诡异……

经过检查发现,cassandra启动时候默认启动了8080端口用于jmx(Java性能检测),如果我们不需要的话,去掉就可以了。

配置在bin/cassandra.in.sh中,如下去掉即可:
cassandra_home=`dirname $0`/..[......]

继续阅读

Python Essential Reference 4th – 第15章 – 读书笔记

本章主要介绍抽象类和一些高级的Collection。

1、abc模块:抽象类模块。
一个抽象类的例子:
(1)__metaclass__用ABCMeta替换
(2)抽象方法用@abstractmethod标注
(3)抽象属性用@abstractproperty标注
from abc import ABCMeta,abstractmethod,abstractproperty
class Stackable:
__metaclass__ = ABCMeta
@[......]

继续阅读

Python Essential Reference 4th – 第14章 – 读书笔记

本章主要介绍一些和数学计算相关的模块。

1、decimal模块
主要提供浮点运算。Python默认的浮点存储是IEEE 754标准的,对于0.1可能被存储为0.000000000000000001。这类问题在Java等也存在。在一般情况下是可容忍的,但有些时候(比如用于金融行业软件),3 * 0.1 == 0.3会返回False,这是不合适的。
dicimal模块采用IBM General Decimal Arthmetic标准。定义了两种个主要类:Decimal和Context类。其[......]

继续阅读

Python Essential Reference 4th – 第13章 – 读书笔记

本章主要介绍了一些与Python运行时相关的模块。

1、atexit模块
在真个Python解释器退出时,可以绑定若干钩子函数,通过atexit完成。
>>> def fun1():
... print "hh"
...
>>> import atexit
>>> atexit.register(fun1)
<function fun1 at 0xb7707614>
>>>
#按C[......]

继续阅读