当前位置: 首页 > news >正文

Google地图瓦片爬虫——进阶版

紧接上一篇——Google地图瓦片爬虫

clash节点自动切换

为了防止一个IP地址访问频率过快问题,自动切换clash的节点

def change_node(is_stop):while True:_r = requests.get("http://127.0.0.1:11053/proxies", headers=clash_headers, verify=False)# 这里匹配Lv开头的节点proxy_list = [proxy for proxy in _r.json()["proxies"]["XXX"]["all"] if proxy.startswith("Lv")]proxy = random.choice(proxy_list)payload = json.dumps({"name": proxy})# XXX替换为自己的分组名称requests.put("http://127.0.0.1:11053/proxies/XXX", headers=clash_headers, data=payload, verify=False)time.sleep(5)if is_stop.value:print("Finished.")break

多进程爬虫

  • get_tile:用于爬取瓦片
  • write_to_db:用于写入数据库
  • change_node:用于切换clash节点
def main():is_stop = multiprocessing.Value("I", 0)db_path, db_name, tile_list = init_db()total = len(tile_list)print(total)# 创建任务队列data_queue = Queue()process_list = []p_number = 10step = total // p_number + 1for i in range(p_number + 1):process_list.append(Process(target=get_tile, args=(data_queue, db_path, db_name, tile_list[i * step:(i + 1) * step],)))process_list.append(Process(target=write_to_db, args=(data_queue, db_path, total, is_stop)))process_list.append(Process(target=change_node, args=(is_stop,)))for p in process_list:p.start()for p in process_list:p.join()

完整程序

下载地址:https://download.csdn.net/download/this_is_id/90343579

http://www.lryc.cn/news/532741.html

相关文章:

  • 免费windows pdf编辑工具
  • 解锁C#数据校验:从基础到实战的进阶之路
  • Redis的通用命令
  • 设计模式六大原则和单例模式
  • Redis性能优化
  • SAM 大模型杂谈
  • openGauss 3.0 数据库在线实训课程2:学习客户端工具gsql的使用
  • B站自研的第二代视频连麦系统(上)
  • 【远程控制】安装虚拟显示器
  • 基于HAI部署DeepSeekR1的招标文书智能辅助生产开发与应用
  • 解决whisper 本地运行时GPU 利用率不高的问题
  • 模拟实战-用CompletableFuture优化远程RPC调用
  • 深入解析:Jsoup 库的多功能应用场景
  • Polardb三节点集群部署安装--附虚拟机
  • Redis - 全局ID生成器 RedisIdWorker
  • 【Vitest】单元测试
  • 达梦数据库从单主模式转换为主备模式
  • 【Elasticsearch】nested聚合
  • 虹科波形小课堂 | 三分钟掌握车辆相对压缩测试!不拆发动机、不测缸压就能判断故障缸!
  • 【玩转全栈】--创建一个自己的vue项目
  • 基于 Spring Cloud + Spring AI + VUE 的知识助理平台介绍以及问题
  • < 自用文儿 > 下载 MaxMind GeoIP Databases 对攻击的 IP 做 地理分析
  • 前端知识速记:重绘和回流
  • webrtc peerconnection_client peerconnection_server 连接失败问题解决 win10 win11
  • 【C++】STL——list的使用与底层实现
  • iOS 音频录制、播放与格式转换
  • 【PyTorch】解决Boolean value of Tensor with more than one value is ambiguous报错
  • Jsoup库具体怎么用?
  • python:如何播放 .spx 声音文件
  • HTML学习笔记(6)