哪有什么岁月静好,不过是有人替你负重前行!

python 爬虫 线程池

 

 

 

 test.html代码:

<html lang="en">
<head>
	<meta charset="UTF-8" />
	<title>测试bs4</title>
</head>
<body>
	<div>
		<p>百里守约</p>
	</div>
	<div class="song">
		<p>李清照</p>
		<p>王安石</p>
		<p>苏轼</p>
		<p>柳宗元</p>
		<a href="http://www.song.com/" title="赵匡胤" target="_self">
			<span>this is span</span>
		宋朝是最强大的王朝,不是军队的强大,而是经济很强大,国民都很有钱</a>
		<a href="" class="du">总为浮云能蔽日,长安不见使人愁</a>
		<img src="http://www.baidu.com/meinv.jpg" alt="" />
	</div>
	<div class="tang">
		<ul>
			<li><a href="http://www.baidu.com" title="qing">清明时节雨纷纷,路上行人欲断魂,借问酒家何处有,牧童遥指杏花村</a></li>
			<li><a href="http://www.163.com" title="qin">秦时明月汉时关,万里长征人未还,但使龙城飞将在,不教胡马度阴山</a></li>
			<li><a href="http://www.126.com" alt="qi">岐王宅里寻常见,崔九堂前几度闻,正是江南好风景,落花时节又逢君</a></li>
			<li><a href="http://www.sina.com" class="du">杜甫</a></li>
			<li><a href="http://www.dudu.com" class="du">杜牧</a></li>
			<li><b>杜小月</b></li>
			<li><i>度蜜月</i></li>
			<li><a href="http://www.haha.com" id="feng">凤凰台上凤凰游,凤去台空江自流,吴宫花草埋幽径,晋代衣冠成古丘</a></li>
		</ul>
	</div>
</body>
</html>

  线程池代码:

#!/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)

  

posted @ 2021-11-29 11:09  longfei825  阅读(53)  评论(0编辑  收藏  举报