python 线程池 多线程 linux环境下爬虫

放大python 线程池 多线程 linux环境下爬虫



python 线程池 多线程 linux环境下爬虫python 线程池 多线程 linux环境下爬虫



#!/user/bin/python 
#coding:utf-8


import requests;
from collections import deque;
import urllib2;
import re;
import os;


class Data(object):
    def __init__(self,startURL,depth=1):
        self.URL=startURL
        self.depth=depth
        
class crawler(object):
    def __init__(self,args):
        self.startURL=args.URL
        self.unvisitedHrefs=deque()
        self.visitedHrefs=set()
        self.unvisitedHrefs.append(args)
        
    def startCrawler(self):
        save_url=open("Save_URL.txt", 'w')
        save_files=open("Save_HTML.txt",'w')
        while len(self.unvisitedHrefs):
            da=self.unvisitedHrefs.pop()
            if da.depth >200:
                break;
            try: 
                 self.visitedHrefs.add(da.URL)
                 req=urllib2.urlopen(da.URL, data=None, timeout=2)
                 coding_style=re.findall('charset.*"', content[1:500],re.I)
                 coding_style=coding_style[0].replace('"',"")
                 ##if (coding_style=="charset=gb2312"):
                 ##    content.decode("GB2312")
                 ##elif (coding_style=="charset=utf-8" or coding_style=="charset=UTF-8"):
                 ##     content.decode("gb2312")
                 ##content=content.replace("\n","")
                 save_files.write(da.URL+"\t"+content+"\n")
            except:
                print("the error URL:",da.URL)
            urls=re.findall('<a href="http.*"',content,re.I)
            depth=da.depth+1
            for u in urls:
                li=u.split('"')
                if(li[1] not in self.visitedHrefs):
                    da=Data(li[1],depth)
                    self.unvisitedHrefs.append(da)
                    save_url.write(li[1]+"\n")
                    print li[1]
        print "Finished Crawler!"
        save_url.close()
        save_files.close()
    def addUnvisitedHrefs(self,webPage):
        self.de.add
if __name__=="__main__":
    da=Data("http://www.hrbeu.edu.cn/")
    cra=crawler(da)
    cra.startCrawler()python 线程池 多线程 linux环境下爬虫



python 线程池 多线程 linux环境下爬虫python 线程池 多线程 linux环境下爬虫


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值