python多线程实现抓取网页
2014-06-28 12:54
721 查看
Python实现抓取网页
下面的Python抓取网页的程序比较初级,只能抓取第一页的url所属的页面,只要预定URL足够多,保证你抓取的网页是无限级别的哈,下面是代码:
下面的Python抓取网页的程序比较初级,只能抓取第一页的url所属的页面,只要预定URL足够多,保证你抓取的网页是无限级别的哈,下面是代码:
##coding:utf-8 ''' 无限抓取网页 @author wangbingyu @date 2014-06-26 ''' import sys,urllib,re,thread,time,threading ''' 创建下载线程类 ''' class download(threading.Thread): def __init__(self,url,threadName): threading.Thread.__init__(self,name=threadName) self.thread_stop = False self.url = url def run(self): while not self.thread_stop: self.list = self.getUrl(self.url) self.downloading(self.list) def stop(self): self.thread_stop = True def downloading(self,list): try: for i in range(len(list) - 1): urllib.urlretrieve(list[i],'E:\upload\download\%s.html' % time.time()) except Exception,ex: print Exception,'_upload:',ex def getUrl(self,url): result = [] s = urllib.urlopen(url).read(); ss = s.replace(' ','') urls=re.findall('<a.*?href=.*?<\/a>',ss,re.I) for i in urls: tmp = i.split('"') try: if tmp[1]: if re.match(r'\http://.*',tmp[1]): result.append(tmp[1]) except Exception,ex: print Exception,":getUrl",ex return result if __name__ == '__main__': list = ['http://www.baidu.com','http://www.qq.com','http://www.taobao.com','http://www.sina.com.cn'] for i in range(len(list)): #print list[i] download(list[i],'thread%s' % i).start() #list = ['http://www.baidu.com','http://www.sina.com.cn'] #obj = download('http://www.baidu.com','threadName') #obj.start(); input()
相关文章推荐
- Python实现多线程抓取网页功能实例详解
- python多线程实现抓取网页
- 【转】详解抓取网站,模拟登陆,抓取动态网页的原理和实现(Python,C#等)
- Python实现抓取网页并且解析的实例
- PHP使用CURL实现多线程抓取网页
- 多线程网页爬虫 python 实现(二)
- python实现抓取网页上的内容并发送到邮箱
- PHP 利用 Curl Functions 实现多线程抓取网页和下载文件
- 如何用Python,C#等语言去实现抓取静态网页+抓取动态网页+模拟登陆网站
- 详解抓取网站,模拟登陆,抓取动态网页的原理和实现(Python,C#等)
- 如何用Python,C#等语言去实现抓取静态网页+抓取动态网页+模拟登陆网站
- Python 多线程抓取网页
- PHP多线程抓取网页实现代码
- (转)用python实现抓取网页、模拟登陆
- Python代理抓取并验证使用多线程实现
- Python实现抓取网页并且解析的实例
- (转)Python-详解抓取网站,模拟登陆,抓取动态网页的原理和实现
- Python 多线程抓取网页 牛人 use raw socket implement http request great
- Python 多线程抓取网页
- Python 实现网络爬虫 抓取静态网页【代码】