Я бы попробовал разделить это на несколько процессов в моем комментарии.Таким образом, вы можете поместить свой код в функцию и использовать многопроцессорность, подобную этой:
from multiprocessing import Pool
def web_scrape(url):
response = http.request('GET',url )
soup = BeautifulSoup(response.data,"lxml")
t=str(soup.find("div",attrs={"class":"section__description"}))
return t
if __name__ == '__main__':
# M is your list of urls
M=["https:// ... , ... , ... ]
p = Pool(5) # 5 or how many processes you think is appropriate (start with how many cores you have, maybe)
description=p.map(web_scrape, M))
p.close()
p.join()
description=list(description) # if you need it to be a list
В результате ваш список URL-адресов распределяется по нескольким процессам, выполняющим вашу функцию очистки.Все результаты в итоге объединяются и в итоге description
.Это должно быть намного быстрее, чем если бы вы обрабатывали каждый URL-адрес по одному, как вы делаете в настоящее время.
Для более подробной информации: https://docs.python.org/2/library/multiprocessing.html