爬蟲並行化

2021-08-20 17:21:42 字數 1004 閱讀 5764

##map使用

map函式包含了序列操作,引數傳遞和結果儲存的的一系列操作

###匯入

from multiprocessing.dummy import pool

pool = pool(4) #表示4執行緒

results = pool.map(爬取函式,**列表)

附上簡單並行爬蟲的例子

__author__ = 'ding'

'''多執行緒使用

'''from multiprocessing.dummy import pool as threadpool

import requests

import time

def getsource(url):

html = requests.get(url)

urls =

for i in range(1, 21):

newpage = '' + str(i)

time1 = time.time()

for i in urls:

print(i)

getsource(i)

time2 = time.time()

print('單執行緒耗時:' + str(time2 - time1))

pool = threadpool(4)

time3 = time.time()

results = pool.map(getsource, urls)

pool.close()

pool.join()

time4 = time.time()

print("並行耗時:" + str(time4 - time3))

out put

單執行緒耗時:109.83350014686584

並行耗時:13.332000017166138

網路較慢所以耗時較長,但相比較而言並行效率比單執行緒要高上很多

並行爬蟲設計相關1

挑戰 2.網頁質量。每乙個處理程序,如何能過全域性的考慮網頁的質量,因為他們彼此之間不知道對方存在,所以程序間了解的網頁重要性有區域性性。3.通訊頻寬。為了解決上述問題,程序間需要通訊,然而隨著規模的加大,通訊花銷也變得異常的大。如果解決了上述問題,則並行爬蟲要比單個爬蟲更有 力 1.可擴充套件性。...

SVM的並行化

目前我在svm的並行化方面已經有解法.svm在數學上的本質是凸優化理論,可以有很多種解法。它的問題具有對偶性,從原問題出發和從對偶問題出發。傳統svm在大資料集下,它的核矩陣要占用的記憶體非常大,呈平方地遞增。也就是說1000個資料占用的記憶體會是100個資料占用的記憶體的100 倍。為了解決此問題...

使用Openmp並行化

執行命令 g fopenmp xx.cpp lgomp lpthread o xx.out 用例一 include include include void test int n printf d,n int main int argc,char ar 用例二 include include inc...