使用threading+queue队列,发送get请求,输出状态码

#!/usr/bin/env python
# -*- coding: utf-8 -*-import requests
import threading
from queue import Queueclass JianDan(threading.Thread):# 类的构造方法,构造类对象时传入queuedef __init__(self, queue):# 将主体self传入线程的构造方法中threading.Thread.__init__(self)# 绑定传入的queue为类对象的queueself.queue = queuedef run(self):# 当queue队列不为空时while not self.queue.empty():# 从队列中取出一个urlurl = self.queue.get_nowait()# 调用spider方法,传入url来发送get请求self.spider(url)# 打印队列的剩余数print(self.queue.qsize())# 打印队列是否为空的状态print(self.queue.empty())def spider(self, url):headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36'}r = requests.get(url=url, headers=headers)print(r.status_code, len(r.content))def main():# 创建一个数量为200的队列的对象q = Queue(200)# 将url地址压入到队列里for i in range(0, 10):q.put('http://www.bj.chinanews.com/news/2021/0228/8103' + str(i) + '.html')# 开始创建线程队列threads = []# 设置线程数thread_count = 30for i in range(thread_count):# 将类对象压入线程队列中threads.append(JianDan(q))for t in threads:t.start()t.join()if __name__ == '__main__':main()

执行结果:

使用threading+queue队列,发送get请求,输出状态码相关推荐

  1. C语言实现queue队列的算法(附完整源码)

    C语言实现queue队列的算法 C语言实现queue队列的算法完整源码(定义,实现,main函数测试) C语言实现queue队列的算法完整源码(定义,实现,main函数测试) #ifndef QUEU ...

  2. java发送post请求json格式_Linux QT 4G发送HTTP POST请求发送JSON格式的数据

    一.在PC Window(QT5版本) 1.1.构建URL 1.2.构建HTTP请求头 1.3.连接信号与操作,接收服务器回复的消息 槽函数这里我们要在头文件定义,然后把处理过程实现. void Ma ...

  3. jquery queue ajax,如何通过jQuery和Queue发送ajax请求?

    嗯,我有一个"ID"列表,我需要为每个"ID"发送一个Ajax请求. IDE是当请求完成时,运行以下Ajax请求. 所有这些与异步请求,因为否则,浏览器字面上& ...

  4. Python之路-python(Queue队列、进程、Gevent协程、Select\Poll\Epoll异步IO与事件驱动)

    一.进程: 1.语法 2.进程间通讯 3.进程池 二.Gevent协程 三.Select\Poll\Epoll异步IO与事件驱动 一.进程: 1.语法 1 简单的启动线程语法 2 def run(na ...

  5. 【复习】进程、线程、协程篇,线程锁之Lock\Rlock\信号量、Event事件、Queue队列

    操作系统发展史介绍 进程.与线程区别 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者消费者模型 ...

  6. Objective-c 异步发送Post请求的工具类

    原文链接iOS开发--post异步网络请求封装 有改动 HttpUtil.h #import <Foundation/Foundation.h> #import <UIKit/UIK ...

  7. day9 进程 线程 threading multiprocessing 队列 主机批量管理工具

    一.进程与线程 1.进程 进程是系统资源加上一个或多个线程的集合 进程只能在一个时间干一件事,如果想同时干两件事或多件事,进程就无能为力了. 进程在执行的过程中如果阻塞,例如等待输入,整个进程就会挂起 ...

  8. python写页面发送post请求_Python模拟浏览器向CSDN发送post请求的方法,POST

    目录 1.发送get请求的方法 import requests import json def GET(url): #get请求 req = requests.get(url) #输出状态码 prin ...

  9. python并发发送http请求_用python异步发送http请求来提升效率

    需求 在一个我做的项目里,业务流程有一环需要调用http的接口. 这个接口本身是同步处理的,返回响应的速度会根据要处理的数据量不同而不同. 为了不拖慢主业务流程,客户要求采用异步的方式来请求,即只要得 ...

  10. python 进程间通信效率_Python进程间通信 multiProcessing Queue队列实现详解

    一.进程间通信 IPC(Inter-Process Communication) IPC机制:实现进程之间通讯 管道:pipe 基于共享的内存空间 队列:pipe+锁的概念--->queue 二 ...

最新文章

  1. Microsoft.NET框架程序设计--20 CLR寄宿、应用程序域、反射
  2. [物理学与PDEs]第2章习题13 将 $p$ - 方程组化为守恒律形式的一阶拟线性对称双曲组...
  3. 用贪心算法解决马踏棋盘问题
  4. 设计模式复习-简单工厂模式
  5. 关于文件操作的\r\n问题。
  6. 源码都没调试过,怎么能说熟悉 redis 呢?
  7. 第二十一期:老大难的GC原理及调优,这全说清楚了
  8. Modbus协议栈开发笔记之二:Modbus消息帧的生成
  9. bootstrap 栅栏布局中 col-xs-*、col-sm-*、col-md-*、col-lg-* 区别及使用方法
  10. Django:Django简介,MTV,Django常用命令
  11. java标签组件命名_java编程规范之java命名规范
  12. js做四则运算时,精度丢失问题及解决方法
  13. 大数据分析的特点有哪些
  14. ftp搭建和定时增量同步实现
  15. 误差平方和用python,残差平方和sklearn.linear_模型线性回归
  16. input标签用法与功能全面解析
  17. android 支付宝登录界面,模仿支付宝登录页的实现(android)
  18. java三国演义_《三国演义》歌曲精品全集
  19. 自动生成banner网站
  20. python中if not是什么意思_python中if not x: 和 if x is not None: 和 if not x is None的使用和区别...

热门文章

  1. 郁闷!我的Gmail邮箱的问题!
  2. xml property标签注入一个类变量_依赖注入的学习
  3. python ** 运算符_Python学习第二天--运算符小结
  4. Java数据结构:稀疏数组(Sparse Array)的创建和文件存取
  5. charles 请求出现乱码_基于iOS的Charles抓包实践
  6. cmd换行 windows_键盘键位修改及管理(Windows篇)
  7. linux 解压加密zip,linux 系统下 zip 的加密压缩与解压缩命令
  8. linux手动注入网络数据_大多数企业网络无法处理大数据负载 | Linux 中国
  9. html5 双水波加载动画,逼真的HTML5 3D水波动画 可多视角浏览
  10. wordpress如何整合html语言,怎么用wordpress建中英文双语及多语言切换的网站