目錄
python多執行緒任務分發的問題
Dec 01, 2016 am 12:56 AM
c
java
node.js
php
python
我現在要多線程抓取一個網站內容,假設這個網站內容有105頁,但是由於機器限制只能開啟十個線程抓取,那麼我如何做到第一個線程負責抓1-10頁,第二個線程11-20頁以此類推,直到最後第十個線程負責抓取91-105頁,這個思路該怎麼寫成python程式碼啊?
回覆內容:
我現在要多線程抓取一個網站內容,假設這個網站內容有105頁,但是由於機器限制只能開啟十個線程抓取,那麼我如何做到第一個線程負責抓1-10頁,第二個線程11-20頁以此類推,直到最後第十個線程負責抓取91-105頁,這個思路該怎麼寫成python程式碼啊?
python3
import urllib import queue import threading def download(queue,lck): """ 工作者,当队列中没有任务的时候就执行退出。 """ while not queue.empty(): pg = queue.get() #在此写 抓取网页的代码 #然后把抓到的内容写入文件 lck.acquire() print ('第 %d 页已完成'%pg) lck.release() queue.task_done() def main(): """ 主线程, """ print ('开始下载……') lck = threading.Lock() q = queue.Queue() for pg in range(1,106): #网站内容有105页 q.put(pg) for i in range(10):#十个线程 t = threading.Thread(target=download, args=(q,lck)) t.start() q.join() # 等待所以任务完成 print ('结束') if __name__ == '__main__': main()
登入後複製
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前
By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保護它?
3 週前
By DDD

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前
By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保護它?
3 週前
By DDD

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發
