摘要:
之前介绍 Scrapy的时候提过 Spider Trap ,实际上,就算是正常的网络拓扑,也是很复杂的相互链接,虽然我当时给的那个例子对于我感兴趣的内容是可以有一个线性顺序依次爬下来的,但是这样的情况在真正的网络结构中通常是少之又少,一但链接网络出现环路,就无法进行拓扑排序而得出一个依次遍历的顺序了,所以 duplicate elimination 可以说是每一个 non-trivial 的必备组件之一,这样就算在遍历的过程中遇到环路也不用怕,排重组件会检测到已经访问过的地址,从而避免在环路上无限地循环下去。最简单的办法也就是每次抓取页面的时候记录下 URL ,然后每次抓取新的 URL 之前先 阅读全文
摘要:
python两个有趣属性__all__可用于模块导入时限制,如:from module import *此时被导入模块若定义了__all__属性,则只有all内指定的属性、方法、类可被导入~若没定义,则模块内的所有将被导入。__slots__用于限定类属性,如:class A(object): __slots__ = ['var']此时外部调用时,如:a = A()a.var = 4 #不会报错a.other = 4 #此时则会抛出异常AttributeError 阅读全文