最新要闻
- 全球看点:打破日本垄断!OLED关键材料FMM首次国产
- 环球今日讯!R星今日正式入驻B站!网友“花式”催更《GTA6》
- 全球观天下!显卡、主板返修排行:戴尔居然完美第一!AMD极度尴尬
- 环球简讯:神舟十五号航天员准备首次出舱!期待“感觉良好”
- 天天资讯:真我GT Neo5明天官宣 网友:赢麻了
- 每日视点!国产PCIe 4.0硬盘天花板 致态TiPro7000 1TB到手699元
- 《流浪地球2》热映 张朝阳称引力弹弓真实存在:美国航天器经历过
- 全球视点!比亚迪2022年业绩预告出炉:净利润同比暴增超450%
- 世界今热点:65寸电视不到2000元 LCD跌成白菜价 面板一哥京东方2022利润大跌70%
- 荣耀Magic5系列定档:2月27日MWC巴塞罗那见
- 全球焦点!平价神器!新iPad mini 7曝光:处理器/屏幕惊喜
- 女子买电影票发现仅一个普通座位 其他全是C位 工作人员也无语
- 每日短讯:他真的很忙!雷军站公司门口给小米员工挨个发红包
- 最资讯丨打工人热议今天怎么才是周一:专家科普节后综合征
- 【全球热闻】《无名》折戟春节档:4.9亿票房只排第4、粉黑大战尴尬
- 【全球速看料】亏电油耗不到5升 长安UNI-V iDD将于3月上市:或15万起售
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
全球消息!【Python】爬虫实战-基于代理池的高并发爬虫
最近在写一个基于代理池的高并发爬虫,目标是用单机从某网站 API 爬取十亿级别的JSON数据。
(资料图片仅供参考)
代理池
有两种方式能够实现爬虫对代理池的充分利用:
- 搭建一个 Tunnel Proxy 服务器维护代理池
- 在爬虫项目内部自动切换代理
所谓 Tunnel Proxy 实际上是将切换代理的操作交给了代理服务器,很多市面上的代理软件都有此类功能。
如果要自行搭建可参考以下项目:
GitHub - urdr-gungnir/TunnelProxy
GitHub - pingc0y/go_proxy_pool
考虑到高并发,在爬虫项目内部切换代理更加灵活一些。代理池选一个能用的就行:GitHub - jhao104/proxy_pool
记得加上匿名校验:能否设置代理池只获取高匿IP · Issue #169 · jhao104/proxy_pool · GitHub
代理切换策略
如果简单的在多线程中对每个 requests.get() 使用不同的代理,那么一定会遇到内存泄露的问题:
- 内存泄露问题 · Issue #522 · jhao104/proxy_pool · GitHub
- Requests memory leak · Issue #4601 · psf/requests · GitHub
- Memory Leak in Python requests - GeeksforGeeks
即便写成:
session = requests.session()response = session.get(url, headers=headers, proxies=proxies)response.close()session.close()
甚至在加上 gc.collect() 也无济于事。
因此需要控制创建 session 对象的数量,只在请求失败后切换代理和创建新的 session。
工作流程
① 主线程根据 URL 数量动态创建子进程,虚线框内为子进程任务
② crawler_task 为线程任务,执行发送请求和解析JSON
插入策略
每个子进程维护一个 url_queue 和 insert_queue。
线程会从 url_queue 取出URL执行爬取任务,由于JSON数据占用的空间不大,所以线程会先将每个 response 经过简单解析后存到列表中。
等到 url_queue 为空时(不要使用不安全的 queue.empty() 判断),get 方法会触发 Timeout 异常,然后线程会将列表插入到 insert_queue 中。
所有线程任务结束后,子进程再执行 executemany 将数据批量插入到 MySQL。
其他
爬取JSON数据产生的流量不大,但需要考虑 PPS(packet per second),如果网络设施不到位的话可能严重影响爬取效率。
网络上获取的免费代理大多是透明代理,如果使用开源项目 Proxy_Pool 作为代理池并加入匿名校验,可能会间歇性导致代理池没有可用代理。(所以最好还是从一些网络空间测绘引擎上通过特征抓取)
全球消息!【Python】爬虫实战-基于代理池的高并发爬虫
焦点快看:rust写一个im聊天服务
全球看点:打破日本垄断!OLED关键材料FMM首次国产
环球今日讯!R星今日正式入驻B站!网友“花式”催更《GTA6》
全球观天下!显卡、主板返修排行:戴尔居然完美第一!AMD极度尴尬
环球简讯:神舟十五号航天员准备首次出舱!期待“感觉良好”
天天资讯:真我GT Neo5明天官宣 网友:赢麻了
每日视点!国产PCIe 4.0硬盘天花板 致态TiPro7000 1TB到手699元
《流浪地球2》热映 张朝阳称引力弹弓真实存在:美国航天器经历过
全球视点!比亚迪2022年业绩预告出炉:净利润同比暴增超450%
世界今热点:65寸电视不到2000元 LCD跌成白菜价 面板一哥京东方2022利润大跌70%
荣耀Magic5系列定档:2月27日MWC巴塞罗那见
Java中23种设计模式介绍和应用场景总结
今头条!手机测试之-adb
环球时讯:《鹅鸭杀》爆火,一文带你了解如何实现顶流社交游戏
DevOps: 自动与手动部署语义化版本(Semantic Versioning)实操
焦点信息:手上有了这些工具,明天争取6点下班了!
全球焦点!平价神器!新iPad mini 7曝光:处理器/屏幕惊喜
女子买电影票发现仅一个普通座位 其他全是C位 工作人员也无语
每日短讯:他真的很忙!雷军站公司门口给小米员工挨个发红包
最资讯丨打工人热议今天怎么才是周一:专家科普节后综合征
【全球热闻】《无名》折戟春节档:4.9亿票房只排第4、粉黑大战尴尬
springboot整合activiti实现流程审批(支持单体、微服务融合)
环球百事通!FPGA用ROM输出正弦波
深度学习基础课:卷积层的梯度检查
Dockerfile构建镜像
每日信息:SSL 证书基本概念扫盲
【全球速看料】亏电油耗不到5升 长安UNI-V iDD将于3月上市:或15万起售
要闻:《流浪地球2》有多硬核?工业机器人登上大银幕 周边产品也火了 超额数百倍
神操作 外卖小哥为闯红灯S形走位 被罚20元
当前快报:3.3万元!雷神ZERO 2023上架:搭载RTX 4090和i9-13900HX
【当前独家】女子被石头鱼刺伤整条胳膊肿胀 医生提醒:高档海鲜 鳍有剧毒
实时焦点:【算法训练营day31】LeetCode455. 分发饼干 LeetCode376. 摆动序列 LeetCode53. 最大子序和
记录--这样封装列表 hooks,一天可以开发 20 个页面
焦点热门:如何根据网络位计算主机位的数量
光线传媒回应股价暴跌:节前涨过一波 公司主投的《深海》票房不及预期
世界观天下!庆祝中国新年!梅西东家巴黎全队球员身穿中文球衣出战
焦点速读:4人修改游戏源代码 架设私服 2年牟利260余万元
全球实时:因堵车错过高速免费时段要缴1000多过路费 有司机不干了:网友支招
世界热头条丨郭明錤:苹果或明年推出折叠屏iPad 配备碳纤维支架
字典树学习笔记
世界百事通!2023考研资料整合推荐
看点:为什么要进行网络分层
焦点信息:ChatGPT很厉害 但还有关键问题悬而未决
世界简讯:夫妻过年捡烟花纸壳7天捡5000斤赚500元:网友五味杂陈
环球快消息!注意了!22岁女生熬夜关灯玩手机致霰粒肿:做了手术才解决
长城“铁娘子”王凤英出任小鹏汽车总裁 向何小鹏汇报
焦点快报!跌破0.5元:阿里健康大药房劲度N95口罩0.49元/片(独立包装)
欧拉函数
【天天报资讯】什么是以太网
天天观天下!Docker数据管理
实时:背大锅!调查称三成离婚与一方沉迷手机有关
当前时讯:制作成本不超一千万、抄袭等争议不断!《满江红》:追究到底 还原真相
全球焦点!Nginx 前端部署配置
全球热头条丨惨剧再现 母子俩大年初一家中围炉煮茶身亡:一氧化碳中毒
《魔兽世界》国服停止 暴雪激怒中国玩家态度傲慢!中消协发声
每日视点!《狂飙》演员演出前才知道自己真实身份 导演太会玩
世界热消息:《满江红》7天营收7千万也带不动 光线传媒股价暴跌
世界最资讯丨博主曝吉利品牌2023年产品及渠道规划:领克改直营、血拼插混
Yarn平滑下线节点(Graceful Decommission)
【天天热闻】火山引擎 DataTester:“在字节,A/B 实验是一种信仰”
Asp.Net7 与 Vue3 组成的 BFF模式
属实赚麻了!《满江红》7天为光线传媒创收7000万元
大赚718亿元!网红基金经理张坤、葛兰火速回血
【全球聚看点】2022年各国汽车销量榜:中国第一 印度迅猛崛起
世界速讯:端劳饭碗 中国研发出玉米秸秆合成淀粉及蛋白技术:成本大降
THAILAND是哪个国家?thailand怎么读英语?
职务怎么填?职务侵占罪立案标准
奋进的旋律大结局是什么?奋进的旋律演员表名单
春风徐徐下一句的是什么?春风徐徐打一生肖是什么?
立春节气的特点和风俗有哪些?立春节气朋友圈句子
谷歌浏览器怎么样?谷歌浏览器无法打开网页是什么原因?
地暖怎么进行打压试验?地暖是怎么样供暖的?
LOL裁决之镰怎么解除?lol裁决之镰为什么没了?
《安富莱嵌入式周报》第301期:ThreadX老大离开微软推出PX5 RTOS第5代系统,支持回流焊的自焊接PCB板设计,单色屏实现多级灰度播放视频效果
【全球新要闻】河北小伙深耕OI默默无闻 LOGO设计放眼全球一鸣惊人 当LOGO设计与世界文化擦出火花——JJQ的LOGO设计之路(纯文
MOTO XT390手机什么时候上市的?MOTO XT390手机参数
iPhone5C上市价格是多少?iphone5c还能用微信吗?
当前头条:德系车在中国不香了?2022年大众、BBA少卖了20万台
《满江红》:成也算计 败也算计
【焦点热闻】轻至689克!富士通推出UH-X/H1轻薄本:世界上最轻的14英寸笔电
环球快播:给头发做个香氛SPA:舒蕾山茶花洗发水500ml 19.9元/瓶大促
报道:特斯拉全球开打价格战 大众第一个交枪!CEO:我们不跟
ServletContext与静态变量(static)的区别,数据库连接池放在哪里
最新资讯:Fortran数组排序:冒泡排序法
头条焦点:Python Numpy 中的打印设置函数set_printoptions
环球播报:小米汽车全身照传疯了!轿跑车身+迈凯伦式大灯 网友:保里保气
领90元大额券:可孚全自动血压计49.9元到手 给爸妈买一台
【全球快播报】真正开对撞机的女孩:从不化妆 一守就是13年
当前速看:苹果车祸检测功能误报不断 救援部门被折腾惨了
新消息丨可直接丢进马桶里!德祐湿厕纸大促:3包不到16元
【世界快播报】读Java8函数式编程笔记05_数据并行化
每日热门:首次打破日本垄断 国内量产OLED显示屏关键材料FMM
每日热文:小米MIUI 14最新升级计划出炉:小米11、Redmi K40等25款机型在列
天天要闻:《满江红》票房近32亿 大V称制作成本不超一千万:官方已无视造谣者
世界信息:真实感渲染:模型变换
码龄几十年的老程序员都不知道的存图小技巧“指向立体星” 学到就是赚到!速戳>>
【全球独家】微信春节大数据出炉:发送红包40亿次 《三体》阅读量第一
你想坐吗?国产大飞机C919航班定了:2月28日北京上海首航
天天即时看!CPU核心数越多越好?看懂CPU核心线程数才能不被骗