Я пытаюсь составить запрос на основе списка URL, а затем проверить содержимое ответа для каждого.Я обнаружил, что это было обнаружено на SO, что, кажется, работает хорошо, если я вывожу ответ на запрос, я получу результат corect, но как только я хочу вернуть содержимое, оно пустое ... почему?
import pandas as pd
import concurrent.futures
import requests
import time
out = []
CONNECTIONS = 100
TIMEOUT = 5
tlds = open('rez.txt').read().splitlines()
urls = ['http://{}'.format(x) for x in tlds[1:]]
def load_url(url, timeout):
ans = requests.head(url, timeout=timeout)
return ans
with concurrent.futures.ThreadPoolExecutor(max_workers=CONNECTIONS) as executor:
future_to_url = (executor.submit(load_url, url, TIMEOUT) for url in urls)
time1 = time.time()
for future in concurrent.futures.as_completed(future_to_url):
try:
data = future.result()
#why is data.content empty??
print(data.content)
except Exception as exc:
data = str(type(exc))
finally:
out.append(data)
#print(out)
print(str(len(out)),end="\r")
time2 = time.time()
print(f'Took {time2-time1:.2f} s')
print(pd.Series(out).value_counts())
Вывод этого кода:
b''
b''
b''
b''
b''
b''
b''
b''
b''
b''
b''
b''
Исходная тема: Получение содержимого HEAD с помощью запросов Python