切换风格

Wizard Sky California Sunset glow Black Cloud Beige Dragon Lavender NewYear City Snow Flowers London
收藏本站XSS平台字符串转换jsfuck
多线程请求网页的例子。[复制链接]
发表于 2014-2-24 21:38:02 | 显示全部楼层 |!read_mode!
利用threading、queue、urllib、beautiful请求多个网页。主要是熟悉多线程的使用。
能多给点金币就好了。。哈哈。。3q

#coding=utf-8

import Queue
import threading
import urllib2, urllib
import time
from bs4 import BeautifulSoup

hosts = ['http://www.sinaapp.com','http://www.baidu.com', 'http://www.163.com', 'http://www.qq.com']

queue = Queue.Queue()
out_queue = Queue.Queue()

class ThreadUrl(threading.Thread):
    def __init__(self,queue, out_queue):
        threading.Thread.__init__(self)
        self.queue = queue
        self.out_queue = out_queue
    
    def run(self):
        while True:
            host = self.queue.get()
            url = urllib.urlopen(host)
            chunk = url.read()
            self.out_queue.put(chunk)
            self.queue.task_done()

class DatamineThread(threading.Thread):
    def __init__(self,out_queue):
        threading.Thread.__init__(self)
        self.out_queue = out_queue
    
    def run(self):
        while True:
            chunk = self.out_queue.get()
            soup = BeautifulSoup(chunk)
            print soup.findAll(['title'])
            self.out_queue.task_done()

start = time.time()

def main():
      
    t = ThreadUrl(queue, out_queue)
    t.setDaemon(True)
    t.start()
    for host in hosts:
        queue.put(host)
    
    dt = DatamineThread(out_queue)
    dt.setDaemon(True)
    dt.start()
    
    queue.join()
    out_queue.join()

main()



已有 1 人评分金币 收起 理由
店小二01 + 5 你金币还少么亲

总评分: 金币 + 5   查看全部评分

发表于 2014-2-26 23:10:45 | 显示全部楼层
谔谔  纳尼 我python没怎么学。。。
发表于 2014-7-27 14:43:38 | 显示全部楼层
高大上的东东- -

代码区

GMT+8, 2019-10-17 08:40

Powered by Discuz! X2

© 2001-2018 Comsenz Inc.

回顶部