多執行緒請求網頁

2021-10-03 04:10:20 字數 1370 閱讀 2956

這裡主要的還是開啟多執行緒、多執行緒會對num這個全域性變數進行修改,主要是用來計算訪問的次數,所以的要加乙個執行緒鎖。最後別看我執行緒開的多,但是只刷了十幾秒,不過十幾秒的訪問了就已經破百了

附上**:

import requests

import csv

import random

import time

import threading

from threading import lock

url =

''headers =

proxies =

# 新增 **ua

with

open

(r'c:\users\xiongrenyi\desktop\project\study\爬蟲實戰\1-ip&ua\ua.csv'

,'r'

)as f:

reader = csv.reader(f)

for i in reader:

)# 新增 **ip

with

open

(r'c:\users\xiongrenyi\desktop\project\study\爬蟲實戰\1-ip&ua\proxies.csv'

,'r'

)as f:

reader = csv.reader(f)

for i in reader:

:{}'

.format

(i[1

], i[2]

)})mutex = lock(

)num =

0defgo(

):global num

while

true

: r = requests.get(url, headers=random.choice(headers)

, proxies=random.choice(proxies)

)print

(r.status_code)

time.sleep(

0.01

)print

(num)

mutex.acquire(

) num +=

1 mutex.release(

)g = threading.thread(target=go)

g1 = threading.thread(target=go)

g2 = threading.thread(target=go)

g3 = threading.thread(target=go)

g.start(

)g2.start(

)g3.start(

)

CURL多執行緒抓取網頁

網上這類方法似乎太多了。但是總是有一些問題存在。對於多執行緒抓取,現在有如下幾種思路 1.用apache的多執行緒特性,讓php進行 多程序 操作,就像post本身一樣 2.用curl的curl multi庫 對於第一種,我還沒嘗試,因為這種製造的是偽多執行緒,也許效率會低很多,而且不好控制。第二種...

curl多執行緒批量請求

測試經常遇到檢視大資料量url請求是否正常。單執行緒跑的太慢 可以自定義執行緒數進行跑,細節不多說,其實我也是上網上湊的,拿下來修修改改能用即可。bin bash ttime date y m d h m s 允許的執行緒數 thread num 5 定義描述符為9的管道 mkfifo tmp ex...

c 多執行緒抓取網頁內容

1.2.好了,認識 分析完問題,就是解決問題了 多執行緒在c 中並不難實現。它有乙個命名空間 system.threading 提供了多執行緒的支援。要開啟乙個新執行緒,需要以下的初始化 threadstart startdownload new threadstart download 執行緒起始...