資料探勘 多程序抓取

2021-08-19 14:15:54 字數 1740 閱讀 2394

之前說過python的多執行緒只能執行在乙個單核上,也就是各執行緒是以併發的方式非同步執行的

這篇文章我們來聊聊python多程序的方式

多程序依賴於所在機器的處理器個數,在多核機器上進行多程序程式設計時,各核上執行的程序之間是並行執行的,可以利用程序池,是每乙個核心上執行乙個程序,當翅中的程序數量大於核心總數時,待執行的程序會等待,直至其他程序執行完畢讓出核心

多程序就相當於下面這種賣票的行為

在這裡要注意,當系統內只有乙個單核cpu是,多程序並不會發生,此時各程序會依次占用cpu執行至完成

我們可以通過python的語句會的cpu可用的核數,如下圖

為了形成比較,我們還是使用之前的那個例子,噹噹圖書,搜尋關鍵字商品資訊的抓取

首先寫出多程序主方法

# coding=utf-8

__author__ = "susmote"

from multi_threading import mining_func

import multiprocessing

import time

def multiple_process_test():

start_time = time.time()

page_range_list = [

(1, 10),

(11, 20),

(21, 32),

]pool = multiprocessing.pool(processes=3)

for page_range in page_range_list:

pool.close()

pool.join()

end_time = time.time()

return end_time - start_time

在這裡面,我簡單解釋一下有關多程序的操作

下面是主函式

# coding=utf-8

__author__ = "susmote"

from process_func import multiple_process_test

if __name__ == "__main__":

pt = multiple_process_test()

print("pt : ", pt)

把**執行起來,得到如下結果

5.908

再執行一次

3.954

最後一次

4.163

取平均時間

4.341秒

這時我們再回顧上篇文章多執行緒的情況(同樣網路條件下):

多執行緒

單執行緒

可以看到,差距非常明顯,多程序佔絕大優勢

多程序就是這些,你也可以找乙個更大的資料池,去試驗這些方法

PHP多程序程式設計(三)多程序抓取網頁的演示

要理解這個部分的 請閱讀 用 socket 和 pcntl 實現乙個多程序伺服器 一 php多程序程式設計 一 php多程序程式設計 二 管道通訊 我們知道,從父程序到子經常的資料傳遞相對比較容易一些,但是從子程序傳遞到父程序就比較的困難。有很多辦法實現程序互動,在php中比較方便的是 管道通訊。當...

python多程序抓取貓眼電影top

pip install requests 使用第三方庫requests抓取,import requests import re import json import multiprocessing from requests import requestexception 獲取要抓取網頁源 defg...

多程序抓取貓眼電影top100

import json from multiprocessing import pool import requests from requests.exceptions import requestexception import re 建構函式,輸入乙個url 傳送請求後返回該 的響應結果 de...