码迷,mamicode.com
首页 > 其他好文 > 详细

并行请求多个域名的IP地址

时间:2018-04-11 00:07:52      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:python/gevent

以下示例显示如何同时运行任务。

import gevent
from gevent import socket
urls = [‘www.baidu.com‘, ‘www.sina.com‘, ‘www.sohu.com‘]
jobs = [gevent.spawn(socket.gethostbyname, url) for url in urls]
gevent.joinall(jobs)
[job.value for job in jobs]

[‘112.80.248.73‘, ‘101.71.100.123‘, ‘140.207.205.39‘]

调用函数

# -*-coding=utf-8 -*-
from __future__ import print_function
import gevent
from gevent import monkey
monkey.patch_all()
import requests
urls = [‘http://www.baidu.com‘,‘http://www.sina.com.cn‘,‘http://www.sohu.com‘,‘http://www.baidu.com‘,‘http://www.sina.com.cn‘,‘http://www.sohu.com‘,‘http://www.baidu.com‘,‘http://www.sina.com.cn‘,‘http://www.sohu.com‘]
#多些URL可以更好的看到并行执行任务
def print_head(url):
print (‘starting %s‘%url)
data = requests.get(url).text
print (‘%s:%s bytes %r‘%(url,len(data),data[:50]))
jobs = [gevent.spawn(print_head,url) for url in urls]
gevent.wait(jobs)

并行请求多个域名的IP地址

标签:python/gevent

原文地址:http://blog.51cto.com/guoshiwei/2096710

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!