本文主要是介绍异步爬虫-利用线程池爬取acg美图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
环境:Python3.8 开发工具:Pycharm
需要用到的库:
请求网址:requests
解析数据:lxml
保存文件与计算时间:os,uuid,time
多进程:multiprocessing
目标网址
http://acg17.com/
要爬取的图片在这些url里
因为要请求的是两个网址,这里我们需要异步爬虫,多进程解决速度慢的问题。
然而为什么使用多进程呢?当想提高cpu密集型任务的效率时,便可以使用多进程来改善这种情况。
例如我的cpu是4核8线程的
实例化线程池对象pool后创建线程池时最多写8个
(当然进程越多越快)
# 创建线程池
pool = Pool(8)
运行结果(支持多页爬取,这里我只各爬了一页)
三百多张不到一分钟,还是很快的
完整代码
import requests
import os,time
from lxml import etree
from multiprocessing.dummy import Pool
from uuid import uuid4
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36 Edg/84.0.522.63",
}
这篇关于异步爬虫-利用线程池爬取acg美图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!