Python多线程爬虫的使用方法是什么
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇内容介绍了"Python多线程爬虫的使用方法是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
千家信息网最后更新 2025年12月02日Python多线程爬虫的使用方法是什么
本篇内容介绍了"Python多线程爬虫的使用方法是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
基本开发环境
Python 3.6
Pycharm
wkhtmltopdf
相关模块的使用
re
requests
concurrent.futures
安装Python并添加到环境变量,pip安装需要的相关模块即可。
一、明确需求
现在聊天谁还不发几个表情包?聊天时,表情包是我们重要的工具,更是拉进小伙伴们距离的好帮手,当聊天陷入尴尬境地时,随手一张表情包,让尴尬化为无形
二、网页数据分析
如图所示斗图网上面的图片数据都包含在 a 标签当中,可以尝试直接请求这个网页,查看response 返回的数据当中是否也含有 图片地址。
import requestsdef get_response(html_url): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36' } response = requests.get(url=html_url, headers=headers) return responsedef main(html_url): response = get_response(html_url) print(response.text)if __name__ == '__main__': url = 'https://www.doutula.com/photo/list/' main(url)在输出结果中 ctrl + F 进行搜索。
这里有一个点想要注意一下,我用python请求网页所给我们返回的结果当中,包含图片url地址是:
data-original="图片url"
data-backup="图片url"
如果想要提取url地址的话,可以用parsel 解析库,或者 re 正则表达式。之前都是使用的parsel,本篇文章就用 正则表达式吧。
urls = re.findall('data-original="(.*?)"', response.text)单页爬取完整代码
import requestsimport redef get_response(html_url): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36' } response = requests.get(url=html_url, headers=headers) return responsedef save(image_url, image_name): image_content = get_response(image_url).content filename = 'images\\' + image_name with open(filename, mode='wb') as f: f.write(image_content) print(image_name)def main(html_url): response = get_response(html_url) urls = re.findall('data-original="(.*?)"', response.text) for link in urls: image_name = link.split('/')[-1] save(link, image_name)if __name__ == '__main__': url = 'https://www.doutula.com/photo/list/' main(url)多线程爬取全站图片(如果你的内存够大)
3631页的数据,什么表情都有,嘿嘿嘿
import requestsimport reimport concurrent.futuresdef get_response(html_url): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36' } response = requests.get(url=html_url, headers=headers) return responsedef save(image_url, image_name): image_content = get_response(image_url).content filename = 'images\\' + image_name with open(filename, mode='wb') as f: f.write(image_content) print(image_name)def main(html_url): response = get_response(html_url) urls = re.findall('data-original="(.*?)"', response.text) for link in urls: image_name = link.split('/')[-1] save(link, image_name)if __name__ == '__main__': # ThreadPoolExecutor 线程池的对象 # max_workers 最大任务数 executor = concurrent.futures.ThreadPoolExecutor(max_workers=3) for page in range(1, 3632): url = f'https://www.doutula.com/photo/list/?page={page}' # submit 往线程池里面添加任务 executor.submit(main, url) executor.shutdown()"Python多线程爬虫的使用方法是什么"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
图片
线程
数据
表情
地址
网页
使用方法
方法
爬虫
尴尬
任务
内容
文章
更多
模块
正则
环境
知识
结果
表达式
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
和邮政快递有关的数据库系统
安徽股票软件开发公司
网络安全和运维开发一样吗
长治大屏触摸软件开发公司
华为西安软件开发工资
云服务器安全机制等级
天津诚信网络技术服务商家
网络安全系统保密问题
果家智能锁连不上服务器
佳星网络技术有限公司
中国地震局东软网络安全
在传统数据库应用领域
联想服务器开机
武汉客户管理软件开发
软件开发测试男生
hql删除重复数据库
和平精英吃鸡服务器地址
云端服务器能用换ip软件吗
杨紫为网络安全唱的主题曲
服务器入门看什么书
数据库能数据共享吗
软件开发提示错误信息
八年级网络安全班会课
海信多媒体研发中心软件开发
郑州导航软件开发
网络安全攻坚技术
数据库连接查询有哪几种
数据库hdb
天津机器视觉软件开发
诺顿网络安全2018