刚刚开了一个《计算机网络》的课, 觉得很有用。正好师兄让我练习编写一个能下载网站网
页的程序, 正好能用上课上的知识了。 为了想作一个效率不差的, 而下载网页的性能瓶颈是
在网络上,所有决定用 Python 编写代码。刚学 python 没几天,学习一种语言的最好方法就
是写 code.下面的是我用的多线程实现的网络爬虫,并用 py2exe 生成了一个 exe,自身觉得
py2exe 不太好,又不会更好的,只能 ......
这是我这些天的成果。希望有人能提出好的建议, 先谢谢了!一共两个文件,一
个是 toolbox_insight.py ,是一个工具文件另一个是 test.py,是一个用到 toolbox_insight.py 中
工具的测试文件
#FileName: toolbox_insight.py
from sgmllib import SGMLParser
import threading
import time
import urllib2
import StringIO
import gzip
import string
import os
#rewrite SGMLParser for start_a
class Basegeturls(SGMLParser): #这个 Basegeturls 类作用是分析下载的网页,把网页中的
所有链接放在 self.url 中。
def reset(self):
self.url = []
SGMLParser.reset(self)
def start_a(self, attrs):
href = [v for k, v in attrs if k == 'href']
if href:
self.url.extend(href)
#for quickly finding
class Newlist(list):# 这个类其实是一个添加了 find 方法的 LIST 。当 num 变量在 LIST 中,返
回 True,当不在 LIST 中,返回 False 并把 num 按二分法插入 LIST 中
def find(self, num):
l = len(self)
first = 0
end = l - 1
mid = 0
if l == 0:
self.insert(0,num)
return False
while first < end:
mid = (first + end)/2
if num > self[mid]:
first = mid + 1
elif num < self[mid]:
end = mid - 1
评论0
最新资源