爬虫学习 异步爬虫(五)

多线程 多进程 协程

进程 运行中的程序
线程 被CPU调度的执行过程,操作系统 运算调度的min单位
在进程之中,进程中实际运作单位

from threading import Thread#创建任务
def func(name):for i in range(100):print(name,i)if __name__ == '__main__':#创建线程t1 = Thread(target = func,args=("一一一",))#Thread() ,必须要求元组t2 = Thread(target = func,args=("二二二",))t1.start()t2.start()
print("我是主线程")
#1个主线程  2个副线程

面向对象方法

from threading import Threadclass MyThread(Thread):def __init__ (self,name):#init 传参super(MyThread,self).__init__()#初始化self.name = namedef run(self): #run方法 -->返回值可不写for i in range(100):print(self.name,i)if __name__ == '__main__':t1 = MyThread("一一一")t2 = MyThread("二二二")t1.start()t2.start()

线程池

from concurrent.futures import ThreadPoolExecutordef func(name):for i in range(10):print(name,i)if __name__ == '__main__':with ThreadPoolExecutor(10) as t:for i in range(100):t.submit (func,f"num{i}")

返回值使用

from concurrent.futures import ThreadPoolExecutordef func(name):for i in range(10):print(name,i)return namedef fn(res):print(res.result())if __name__ == '__main__':with ThreadPoolExecutor(10) as t:for i in range(100):t.submit (func,f"num{i}").add_done_callback(fn)   #返回 即执行 callback函数#顺序不确定

map映射
map返回值 有顺序

from concurrent.futures import ThreadPoolExecutordef func(name):for i in range(10):print(name,i)return namedef fn(res):print(res.result())if __name__ == '__main__':with ThreadPoolExecutor(10) as t:for i in range(100):t.submit (func,f"num{i}").add_done_callback(fn)   #返回   即执行 callback函数   顺序不确定#绑定fn函数   fn 返回值-result()?
if __name__ == '__main__':with ThreadPoolExecutor(10) as t:result = t.map(func,["111","222","333"])for r in result:print(r)# map 返回值为生成器,返回顺序一致

线程池案例

#北京新发地
import  requests
from lxml import etree
from concurrent.futures import ThreadPoolExecutor#线程池f = open("线程池案例.csv","w",encoding="utf-8")def download (url):resp = requests.get(url)tree = etree.HTML(resp.text)tr_list = tree.xpath("//table[@class='hq_table']/tr")for tr in tr_list:td_texts = tr.xpath("./td/text()")s = ",".join(td_texts)f.write(s)f.write('\n')if __name__ =='__main__':with ThreadPoolExecutor(10) as t: #线程池for i in range(1,16964):url = f"http...{i}.shtml"#download(url) 线程池不能这么干t.submit(download,url)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/180561.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

0 NLP: 数据获取与EDA

0数据准备与分析 二分类任务,正负样本共计6W; 数据集下载 https://github.com/SophonPlus/ChineseNlpCorpus/raw/master/datasets/online_shopping_10_cats/online_shopping_10_cats.zip 样本的分布 正负样本中评论字段的长度 ,超过500的都…

Java基本类型包装类

文章目录 前言创建包装类对象包装类数据类型转换 前言 为什么要了解包装类呢?因为在Java中有一句很经典的话,万物皆对象。Java中的8种基本数据类型还不是对象,所以要把它们变成对象,变成对象之后,可以提供一些方法对数…

uniapp 导航分类

商品分类数据&#xff0c;包括分类名称和对应的商品列表点击弹出 列表的内容 展示效果如下&#xff1a; 代码展示 ①div部分 <view class"container"><view class"menu-bar"><view class"menu"><view class"menu-sc…

【hive-design】hive架构详解:描述了hive架构,hive主要组件的作用、hsql在hive执行过程中的底层细节、hive各组件作用

文章目录 一. Hive Architecture二. Metastore1. Metastore Architecture2. Metastore Interface 三. Compiler四. hive架构小结 本文主要讨论了 描述了hive架构&#xff0c;hive主要组件的作用详细描述了hsql在hive执行过程中的底层细节描述了hive各组件作用 一. Hive Archite…

Kubernetes入门篇

文章目录 &#x1f50a;博主介绍&#x1f964;本文内容Kubernetes是什么&#xff1f;为什么需要 Kubernetes&#xff0c;它能做什么&#xff1f;Kubernetes 版本进化Kubernetes 概念Kubernetes 中 3 个重要概念 &#x1f4e2;文章总结&#x1f4e5;博主目标 &#x1f50a;博主介…

第四阶|自在行草 暄桐教室,林曦书法 从书法之美到生活之美

我这有很多的课程&#xff0c;需要了可以取用 新一期&#xff08;入门课&#xff09;&#xff0c;目前已经更新完毕。 新一期&#xff08;第一阶&#xff09;&#xff0c;目前已经更新完毕。 新一期&#xff08;第二阶&#xff09;&#xff0c;目前已经更新完毕。 新一期&#…

验证回文串(双指针)

LCR 018. 验证回文串 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给定一个字符串 s &#xff0c;验证 s 是否是 回文串 &#xff0c;只考虑字母和数字字符&#xff0c;可以忽略字母的大小写。 本题中&#xff0c;将空字符串定义为有效的 回文串 。 样例输入 示例 1…

毫米波雷达DOA角度计算----Capon算法

算法实现如下&#xff1a; parameter&#xff1a;雷达参数设置。 antVet&#xff1a;目标点 对应的非相参积累天线数据。 function [angle,doa_abs] caponMethod(parameter,antVec)txAntenna parameter.txAntenna; % 发射天线 [1 1]rxAntenna parameter.rxAntenna; % 接…

Java第十二篇:连接安全版kafka(Kerberos认证)出现的问题解答

Could not find a ‘KafkaClient’ entry in the JAAS configuration 问题现象 问题原因 原因没有找到&#xff0c;怎么引起的倒是很清楚。原因就是找到不到指定路径下的kafka_client_jaas.conf文件&#xff0c;别看我的路径带了两个//&#xff0c;但没问题的&#xff0c;等同…

PTA:用函数实现从数列中删除一个数

题目&#xff1a; 编写一个函数实现&#xff1a;删除n个元素的数列中下标为k的元素。 测试程序将输入一个下标值&#xff0c;调用本函数&#xff0c;删除数列{1,4,13,9,6,11,18,14,25}中该下标位置的元素&#xff0c;并输出删除后的数列。 函数接口定义&#xff1a; void de…

梦极光(ez_re?)

ez_re 先查壳看看&#xff0c;没有壳 32位 我先说说这道题 打开分析找到主函数 在这里就是flag了&#xff0c;用十六进制转ascii码 我们先运行这个程序看看 我想说说我的想法 首先没看出来这里是十六进制转ascii码其次41D538数组用来干啥来的&#xff1f;题目里面给出的请…

Micropython STM32F4外部中断实验

Micropython STM32F4外部中断实验 &#x1f4cc;固件刷可参考前面一篇《STM32刷Micropython固件参考指南》&#x1f33f; 相关篇《Micropython STM32F4入门点灯》&#x1f4cd;固件下载&#xff1a;https://micropython.org/download/?mcustm32f4&#x1f516;本例程基于STM32…

网络运维与网络安全 学习笔记2023.11.28

网络运维与网络安全 学习笔记 第二十九天 今日目标 OSPF汇总之域间路由、OSPF汇总之外部路由、OSPF链路认证 OSPF安全认证之区域认证、OSPF虚链路 OSPF汇总指域间路由 项目背景 企业内网运行多区域的OSPF网络&#xff0c;在R1 上存在多个不稳定的链路 R1上的不稳定链路&a…

纯cpp如何模拟qt的信号与槽

纯cpp如何模拟qt的信号与槽 我之前是如何使用bind的?一.demo示例二.简单来讲,c自带的bind与function函数,如何实现类似信号与槽的机制1. 简单语法2. function与bind联动尝试1尝试2真正实现流程图 自我反思 我之前是如何使用bind的? 一.demo示例 using MsgHander std::funct…

数据结构-交换排序(冒泡、快速)

冒泡排序 基本思想 先将第一个记录与第二个记录比较&#xff0c;将较大的记录放到第二个位置上&#xff0c;之后再将第二个记录与第三 个记录比较&#xff0c;将较大的记录放到第三个位置上&#xff0c;如此类推&#xff0c;知道比较完最后一个位置&#xff0c;此时注意到 …

红队攻防之hash登录RDP

没什么好害怕&#xff0c;孩子放心去飞吧&#xff0c;在你的身后有个等你的家 Restricted Admin Mode 受限管理模式是一项 Windows 功能&#xff0c;可防止将 RDP 用户的凭据存储在建立 RDP 连接的计算机的内存中。 这是用来防止用户&#xff08;管理员&#xff09;在 RDP 进…

shopee数据:如何获取Shopee平台的数据

在如今快速发展的跨境电商市场中&#xff0c;Shopee&#xff08;虾皮&#xff09;作为一个备受关注的平台&#xff0c;主要服务于东南亚市场。对于卖家来说&#xff0c;了解Shopee平台的数据是非常重要的&#xff0c;因为这可以帮助他们更好地了解市场趋势、优化商品策略并提高…

Ubuntu 20.0 + mysql 8.0 用户和密码修改

第一步 下载&#xff08;简单,注意联网&#xff09;Ubuntu 终端输入以下两行命令 (1) 数据库的服务端及客户端数据库的开发软件包 sudo apt-get install mysql-server mysql-client (2) 数据库的开发软件包 sudo apt-get install libmysqlclient-dev 第二步 查看是否安装成功 …

nginx与vue路由

nginx代理方式 server {listen 80;server_name localhost;location /order/{ proxy_pass http://localhost:8080/order } 表示监听80端口&#xff0c;将请求反向代理到后端服务器。 例如&#xff1a;当浏览器请求的路径是 localhost:80/order/get&#xff0c;检测到请求路径…

微信小程序获取手机号流程以及用到的API

微信小程序获取手机号流程以及用到的API和代码示例如下&#xff1a; 获取手机号流程&#xff1a; 用户点击授权登录按钮&#xff0c;小程序会提示用户授权并获取用户同意。获取到用户的同意后&#xff0c;小程序会将用户的临时登录凭证code返回给开发者服务器。开发者服务器通…