设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 22641|回复: 1
打印 上一主题 下一主题

求助:74课报错:urllib.error.HTTPError: HTTP Error 404: Not Found

[复制链接]

9

主题

0

好友

75

积分

注册会员

Rank: 2

跳转到指定楼层
楼主
发表于 2018-4-10 16:58:08 |显示全部楼层 |倒序浏览
import urllib.request,time

time_start=time.time()
data=[]
for i in range(30):
    print('reuest movie:',i)
    id=1764796+i
    url='https://api.douban.com/v2/movie/subject/%d'%id
    d=urllib.request.urlopen(url).read()
    data.append(d)
    print(i,time.time()-time_start)
print('data',len(data))


运行结果如下:
reuest movie: 0
0 0.7348060607910156
reuest movie: 1
Traceback (most recent call last):
  File "D:/Learning_Software/Python/Documents/CrossinLesson/lesson52_Multithrending.py", line 9, in <module>
    d=urllib.request.urlopen(url).read()
  File "D:\Learning_Software\Python\lib\urllib\request.py", line 223, in urlopen
    return opener.open(url, data, timeout)
  File "D:\Learning_Software\Python\lib\urllib\request.py", line 532, in open
    response = meth(req, response)
  File "D:\Learning_Software\Python\lib\urllib\request.py", line 642, in http_response
    'http', request, response, code, msg, hdrs)
  File "D:\Learning_Software\Python\lib\urllib\request.py", line 570, in error
    return self._call_chain(*args)
  File "D:\Learning_Software\Python\lib\urllib\request.py", line 504, in _call_chain
    result = func(*args)
  File "D:\Learning_Software\Python\lib\urllib\request.py", line 650, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found


好像能找到第一部,剩余的就找不到了,请问 是怎么回事




回复

使用道具 举报

9

主题

0

好友

75

积分

注册会员

Rank: 2

沙发
发表于 2018-4-10 19:20:09 |显示全部楼层
crossin先生 发表于 2018-4-10 17:28
把请求地址print出来,然后在浏览器里看下,有些影片是被屏蔽了,这种要用异常处理去跳过它 ...

经过异常处理已解决,谢谢。
但下面这个多线程的程序不能正确运行,麻烦再帮我看一下
import urllib.request, time, threading

def get_content(i):
    id=1764796+i
    try:
        url='https://api.douban.com/v2/movie/subject/%d'%id
        d=urllib.request.urlopen(url).read()
        data.append(d)
        print(i,time.time()-time_start)
    except:
        print('Not Found')
    print('data',len(data))

time_start = time.time()
data = []
for i in range(30):
    print ('request movie:', i)
    threading._start_new_thread(get_content, (i,))

input('press ENTER to exit...\n')
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-7 02:08 , Processed in 0.026240 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部