设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

Python 实战(5):拿来主义

[复制链接]

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

11#
发表于 2016-8-3 09:54:01 |显示全部楼层
yinxuexia1204 发表于 2016-8-3 09:50
按照老师说的加了start和count,可是执行后,只读到20条数据后就报错:urllib.error.HTTPError: HTTP Error ...

404这是网页请求失败,没找到对应页面的报错。
你把问题分解开来,去调试定位,把每部分的中间数据输出出来,一部分一部分的排除问题,看哪里不对。不然没法知道哪出错了。
你这么问,真没法知道是什么问题
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

12#
发表于 2016-9-30 23:36:21 |显示全部楼层
qiaoyulong9999 发表于 2016-9-30 08:59
先生,麻烦问一个问题
像前边有位同学说的有几部电影的ID是找不到的,我用了try except语句来处理这种异常
...

1. try catch加的位置不对吧,如果没有找到id,程序之间在抓取的时候就报错了。之所以从头抓,是因为你又刷新或请求了页面吧。所以你应该在会报错的地方加try
2. 在insert之前,你可以查一下这个id的电影是否已经存在,避免重复添加。这样即使中途出错,下次重新运行也不会影响
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

13#
发表于 2016-11-1 16:57:02 |显示全部楼层
winmount 发表于 2016-10-31 23:29
请问老师http://api.douban.com/v2/movie/top250为什么在我的chrome上显示成这样

对的啊,这个接口返回的就是 json 格式的数据。我那个是因为装了调整 json 显示的插件
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

14#
发表于 2017-2-5 00:09:16 |显示全部楼层
shmxz1989 发表于 2017-2-4 18:57
在插入数据的过程中,看提示到了59条的时候就没动静了,也没报错,不知道啥原因
但在之前输出的movie_id中 ...

试试看每次抓取sleep停顿一下,有时太快就会被封
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

15#
发表于 2017-2-20 20:59:23 |显示全部楼层
prigioni 发表于 2017-2-19 17:14
我是到第22个也出现这个错误

有时是爬太快被暂时封掉,有时是请求卡住了。也可能遇到某部电影的信息不开放
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

16#
发表于 2017-3-15 17:09:38 |显示全部楼层
nekonekobox 发表于 2017-3-15 01:29
我的ip被豆瓣封掉了,咋办,大概30多个的时候不行了

请求太快了吧。过一阵子应该会解封,之后再抓记得每次停一会儿
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

17#
发表于 2017-3-23 17:34:43 |显示全部楼层
万建涛 发表于 2017-3-23 13:13
你是怎么解决的这个问题,我也是同样的问题

有些id是抓不到的。用异常处理跳过这些电影
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

18#
发表于 2017-9-10 15:14:24 |显示全部楼层
不会飞的hjh 发表于 2017-9-10 12:43
先生你好,可能是现在失效的id更多,抓取到的也是大概100多部,但是效率比较低,所以我按照之前的课程加入 ...

没有任何输出和调试信息,无法仅从你的代码看出

可能是因为你没用 join,所以程序直接在创建完所有线程后就结束了
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

19#
发表于 2017-9-12 11:51:25 |显示全部楼层
不会飞的hjh 发表于 2017-9-12 09:56
如果说只是怕主程序提前退出的话,用先生之前的加入一行input语句就应该可以搞定,试了下也是没效果(在fo ...

把你的try去掉,或者在except里输出报错信息,不然你这个看到的都是你自己输出的 error,把真实error覆盖了

你这个是请求失败了,具体原因被你的try给隐藏了
是不是你请求太快,豆瓣每分钟最多40次

#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

20#
发表于 2017-9-13 11:04:20 |显示全部楼层
不会飞的hjh 发表于 2017-9-12 12:38
请求太快会直接在我运行代码的时候就报错,添加了报错信息之后发现,显示为database is locked,然后查询 ...

可以换mysql
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

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

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

GMT+8, 2024-5-3 01:28 , Processed in 0.019337 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部