Сайт открывается в Chrome, но не при использовании urllib в Python - PullRequest
0 голосов
/ 26 сентября 2019

У меня возникла проблема при попытке чтения данных с веб-сайта с использованием urllib в Python 3, из-за которого моя программа останавливается (она не выдает сообщения об ошибке, похоже, что она застряла в цикле).Странная часть в том, что этот же скрипт работает с любыми другими веб-сайтами, которые я пробую, кроме этого.Я проводил некоторые исследования и читал людей, говорящих об этой «HTTP-ошибке 403: запрещено», которую можно исправить с помощью пользовательского агента пользователя, чтобы открыть URL-адрес в качестве браузера, но это не решает мою проблему.

Я почти на 100% уверен, что проблема в каком-то ограничении со стороны ПК, потому что я использую ПК с работы, и у ПК, и у Сети есть некоторые ограничения, но странная вещь заключается в том, что веб-сайтоткрывается, когда я использую Chrome.

Этот код был опубликован Карди Текномо на другую тему и представляет собой интересный способ показать мою проблему.

import urllib.request

url = "http://py4e-data.dr-chuck.net/known_by_Fikret.html"

page = urllib.request.Request(url,headers={'User-Agent': 'Chrome/76.0.3809.132'})
infile = urllib.request.urlopen(page).read()
data = infile.decode()

print(data)

Более простой код, который пытается сделатьто же самое и терпит неудачу таким же образом, вот этот:

import urllib.request, urllib.parse, urllib.error

Fhandle = urllib.request.urlopen("http://py4e-data.dr-chuck.net/known_by_Fikret.html")
for lines in Fhandle:
    lines = lines.decode().strip()
    print(lines)

Я пытаюсь сделать что-то более сложное, но ради решения проблемы, все, что я пытаюсь сделать с этимкод предназначен для чтения HTML-страницы и печати ее содержимого, но программа всегда застревает сразу после нажатия клавиши ввода, если при этом я использую URL из этих примеров.

...