Python爬虫--5

news/2024/7/19 9:45:45 标签: 爬虫, java, 服务器

1、异步爬虫

异步爬虫的方式:

(1)多线程,多进程(不建议使用)

        好处:可以为相关阻塞的操作单独开启线程或者进程,阻塞操作就可以异步执行。

        弊端:无法无限制的开启多线程或者多进程。

(2)线程池、进程池

        好处:我们可以降低系统对进程或者线程创建和销毁的一个频率,从而很好的降低系统的开销。

        弊端:池中线程或进程的数量是有上限。

        使用原则:线程池处理的是阻塞且耗时的操作。

2、单线程

# -*-coding = utf-8-*-

import time
from multiprocessing.dummy import Pool

# 线程池使用
if __name__ == '__main__' :

    def get_page(str):
        print("正在下载: ", str)
        time.sleep(2)
        print("下载成功: ", str)

    name_list = ['xiaozi', 'aa', 'bb', 'cc']

    start_time = time.time()

    for i in range(len(name_list)):
        get_page(name_list[i])

    end_time = time.time()
    print("%d second"%(end_time - start_time))

结果为:

3、线程池

# -*-coding = utf-8-*-
# 高性能异步爬虫 - 线程池的使用 示例。

import time
from multiprocessing.dummy import Pool

# 线程池使用
if __name__ == '__main__' :

    start_time = time.time()

    def get_page(str):
        print("正在下载: ", str)
        time.sleep(2)
        print("下载成功: ", str)
        return str

    name_list = ['xiaozi', 'aa', 'bb', 'cc']

    # 实例化一个线程池对象
    pool = Pool(4)
    # 将列表中每一个元素传递给get_page进行处理
    ret = pool.map(get_page, name_list)
    print("map的返回结果:", ret)

    end_time = time.time()
    print("%d second"%(end_time - start_time))

    pool.close()
    pool.join()

结果为:


http://www.niftyadmin.cn/n/5339359.html

相关文章

springboot 3 + mysql8 + flyway 数据库版本管理

1、flyway flyway官方文档地址:https://documentation.red-gate.com/fd 对于不怎么看文档的我来说: 1)flyway是个管理数据库版本的工具,可以对不同环境的sql进行迁移操作。 2)优点:初始化、后期数据的管理…

VS2019配置Reshaper

参考VisualStudio神级插件。一JetBrains Resharpera2023.3.2学习版 拉到下面下载主程序,下载就点下一步就好了 然后不要打开VS2019,再按上面的地址下载学习补丁,下载好如图: 查看ReadMe 我们已经装好Reshaper了,然后点…

Sim ROS2

ROS2_Galactic Ubuntu (Debian) — ROS 2 Documentation: Galactic documentation VMware界面大小调整两种方法超详细教程_vmware怎么调整虚拟机界面大小-CSDN博客 orca4 simulator https://github.com/clydemcqueen/orca4 Docker 【 全干货 】5 分钟带你看懂 Docker &#…

wayland(wl_shell) + egl + opengles 最简实例

文章目录 前言一、ubuntu 上相关环境准备1. ubuntu 上安装 weston2. 确定ubuntu 上安装的opengles 版本3. 确定安装的 weston 是否支持 wl_shell 接口二、窗口管理器接口 wl_shell 介绍二、代码实例1.egl_wayland_demo.c2. 编译和运行2.1 编译2.2 运行总结参考资料前言 本文主…

LabVIEW扫描探针显微镜系统开发

在纳米技术对高精度材料特性测量的需求日益增长。介绍了基于LabVIEW开发的扫描探针显微镜(SPM)系统。该系统不仅可以高效地测量材料的热物性,还能在纳米尺度上探究热电性质,为材料研究提供了强大的工具。 系统基于扫描探针显微技…

钉钉企业机器人单聊消息发送实践-大数据平台(XSailboat)消息中心消息推送

1. 背景 在笔者开发的大数据平台XSailboat中有 消息中心 模块,用来全平台的消息收集,整理分拆、订阅发送等功能。消息推送方式支持钉钉群聊、钉钉单聊、短信通知。现记录一下企业机器人消息单聊推送的实现过程。 2. 钉钉开发文档 这是官方的开发文档地…

矩阵重叠问题判断

创作背景 看到一道题目有感而发想写一篇题解,涉及的是一种逆向思维 桌面窗体重叠 - 洛谷https://www.luogu.com.cn/problem/U399827题目来源于《信息学奥赛课课通》 大致就是给一个长方形的左上顶点坐标(x1,y1)和右下顶点坐标(x…

2024/1/17 DFS BFS + Div 3 a,b

目录 Lake Counting S 求细胞数量 海战 组合的输出 div3 A. Square div3 B. Arranging Cats Lake Counting S P1596 [USACO10OCT] Lake Counting S - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 感谢大佬的指点!!!! 思…