python - 为什么明明我可以访问的网站, urlopen却会报 404: Not Found
PHPz
PHPz 2017-04-18 09:40:11
0
5
536

有的说是因为代理.
我的浏览器倒是经常开着代理, 但是我已经关闭了.
我特意查看了下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的首部还是不能访问.

PHPz
PHPz

学习是最好的投资!

全員に返信(5)
大家讲道理

Windows では Python 3.5.2 には問題はありません。
ブラウザからアクセスした際には、パケットをキャプチャしてリクエストと比較することをお勧めします。

リーリー
いいねを押す +0
伊谢尔伦

一部の Web サイトはブラウザ以外のクロールを防ぐためにこれをチェックするため、これはエージェントの設定値に関連している可能性があります

いいねを押す +0
巴扎黑

ブラウザからヘッダーと Cookie をコピーし、urllib の Request オブジェクトに追加します。
シミュレートされたブラウザ~~

いいねを押す +0
Peter_Zhu

非常に重要な理由は、プログラムで要求したエージェント ヘッダーが相手によってブロックされているということです。エージェント ヘッダーを変更してみてください。

いいねを押す +0
阿神

リクエストを使用する必要はなく、直接 urlopen するだけです

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート