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

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

学习是最好的投资!

membalas semua(5)
大家讲道理

Tiada masalah dengan python 3.5.2 saya di bawah tingkap.
Adalah disyorkan agar anda menangkap paket dan membandingkannya dengan permintaan apabila diakses oleh penyemak imbas.

Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32
>>> 
>>> 
>>> 
>>> import urllib.request
>>> url = "http://news.dbanotes.net/"
>>> req = urllib.request.Request(url)
>>> page = urllib.request.urlopen(req).read()
>>> page
b'<html><head><link rel="stylesheet" type="text/css" href="http://news.dbanotes.net/news.css">\n<script type="text/javascript" src="http://news.dbanotes.net/jailbreak.js"></script>\n<link rel="shortcut icon" ...'
伊谢尔伦

Ini mungkin berkaitan dengan nilai tetapan ejen anda, kerana sesetengah tapak web akan menyemak ini untuk menghalang bukan penyemak imbas daripada merangkak

巴扎黑

Anda menyalin pengepala dan kuki daripada penyemak imbas dan menambahkannya pada objek Permintaan urllib.
Pelayar simulasi~~

Peter_Zhu

Sebab yang sangat penting ialah pengepala ejen yang anda minta dalam program anda telah disekat oleh pihak lain. Cuba tukar pengepala ejen.

阿神

Tidak perlu menggunakan Request, hanya urlopen terus

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!