python实现网络爬虫_用python编写网络爬虫

刚刚开了一个《计算机网络》的课,

觉得很有用。正好师兄让我练习编写一个能下载网站网

页的程序,

正好能用上课上的知识了。

为了想作一个效率不差的,

而下载网页的性能瓶颈是

在网络上,所有决定用

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值