有的说是因为代理.
我的浏览器倒是经常开着代理, 但是我已经关闭了.
我特意查看了下HTTP报文, 也都是没经过代理的.
但还是会出错.
代码:
import urllib.request
url = "http://news.dbanotes.net/"
req = urllib.request.Request(url)
page = urllib.request.urlopen(req).read().decode("UTF-8")
print(page)
python版本: 3.5.1
报错信息:
urllib.error.HTTPError: HTTP Error 404: Not Found
应该可以排除以下的问题:
代理
网络问题
url不存在
代码有错
至于反爬虫这个我应该可能性也不大,
一来我试了很多个URL, 基本就是六四分, 有的能访问, 有的不能, 而且我们学校的官网那么, 我才不信他会...
二来我加了User-Agent的首部还是不能访问.
Il n'y a aucun problème avec mon python 3.5.2 sous windows.
Il est recommandé de capturer le paquet et de le comparer avec la requête lors de l'accès par le navigateur.
Cela peut être lié à la valeur du paramètre de votre agent, car certains sites Web vérifieront cela pour empêcher les non-navigateurs d'explorer
Vous copiez les en-têtes et les cookies du navigateur et les ajoutez à l'objet Request de l'urllib.
Navigateur simulé~~
Une raison très importante est que l'en-tête d'agent que vous avez demandé dans votre programme a été bloqué par l'autre partie. Essayez de modifier l'en-tête d'agent.
Pas besoin d'utiliser Request, il suffit d'urlopen directement