Большинство веб-сайтов будут пытаться защитить себя от нежелательных ботов. Если они обнаруживают подозрительный трафик c, они могут решить перестать отвечать, не закрывая соединение должным образом (в результате чего вы зависаете). Некоторые сайты более изощренны в обнаружении ботов, чем другие.
Firefox 48.0 был выпущен еще в 2016 году, поэтому Digikey будет совершенно очевидно, что вы, вероятно, подделываете информацию заголовка. Есть также дополнительные заголовки, которые обычно отправляют браузеры, а ваш скрипт не отправляет.
В Firefox, если вы откроете Инструменты разработчика и go на вкладке Монитор сети, вы можете проверить запрос на посмотрите, какие заголовки он отправляет, а затем скопируйте их, чтобы лучше отображать c поведение обычного браузера.
import urllib.request
headers = {
"User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"Accept-Language": "en-US,en;q=0.5",
"Upgrade-Insecure-Requests": "1"
}
req = urllib.request.Request('https://www.digikey.com', headers = headers)
html = urllib.request.urlopen(req).read()
print(html)