python 爬虫 线程池


 test.html代码:



	
	测试bs4


	

百里守约

  线程池代码:

#!/usr/bin/env python 
# -*- coding:utf-8 -*-
import requests
import time

from multiprocessing.dummy import Pool
urls = [
        'http://127.0.0.1:5000/bobo',
        'http://127.0.0.1:5000/jay',
        'http://127.0.0.1:5000/tom'
    ]
def get_request(url):
    page_text = requests.get(url=url).text
    return len(page_text)

#同步代码
# if __name__ == "__main__":
#     start = time.time()
#
#     for url in urls:
#         res = get_request(url)
#         print(res)
#     print('总耗时:',time.time()-start)
#异步代码
if __name__ == "__main__":
    start = time.time()
    pool = Pool(3) #3表示开启线程的数量
    #使用get_request作为回调函数,需要基于异步的形式对urls列表中的每一个列表元素进行操作
    #保证回调函数必须要有一个参数和返回值
    result_list = pool.map(get_request,urls)
    print(result_list)
    print('总耗时:', time.time() - start)

  FlaskServer.py代码:

#!/usr/bin/env python 
# -*- coding:utf-8 -*-

from flask import Flask,render_template
from time import sleep
#实例化一个app
app = Flask(__name__)

#创建视图函数&路由地址
@app.route('/bobo')
def index_1():
    sleep(2)
    return render_template('test.html')

@app.route('/jay')
def index_2():
    sleep(2)
    return render_template('test.html')

@app.route('/tom')
def index_3():
    sleep(2)
    return render_template('test.html')

if __name__ == "__main__":
    #debug=True表示开启调试模式:服务器端代码被修改后按下保存键会自动重启服务
    app.run(debug=True)