如何实现一次读取两个文件的并发性,并对获取的数据执行某些操作



问题:我将提供两个包含 url 的文件(假设两个文件中的 url 数量相等(,我必须从每个文件中获取每个 URL 提出请求并比较他们的响应

现在我已经通过使用"请求"模块读取每一行并触发请求来实现这一点 f1 = open(FileHandler.File1path,'rt'( f2 = open(FileHandler.File2path,'rt'(

def compareresponse(f1,f2):
for url1,url2 in zip(f1,f2):
resp1 = requests.get(url1.rstrip(),headers={"User-Agent": "XY"})
resp2 = requests.get(url2.rstrip(),headers={"User-Agent": "XY"})
if(resp1.text==resp2.text):
print(url1.rstrip()+ " equals " + url2.rstrip())
else:
print(url1.rstrip() + " notequals " + url2.rstrip())

我如何并行执行它,在等待响应时,我可以发送另一个HTTP请求

使用threading模块,或定义async函数。 例:

import requests
from threading import Thread
results = []
def getter(url):
r = requests.get(url.rstrip(), headers={"User-Agent": "XY"})
results.append(r.text)
if len(results) is 2:
# continue your code when all requests are responded
pass
Thread(target=getter, args=(url1,)).start()
Thread(target=getter, args=(url2,)).start()
# or use for ...

最新更新