设为首页收藏本站

Crossin的编程教室

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

Python 实战(5):拿来主义

[复制链接]

5

主题

1

好友

63

积分

注册会员

Rank: 2

41#
发表于 2017-3-23 13:13:41 |只看该作者
AvyMiz 发表于 2016-5-2 15:12
先生,这个问题我也遇到了,movie里有id这个属性的。
因为正好是第20个,我一直以为是第一个循环里的问题 ...

你是怎么解决的这个问题,我也是同样的问题
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

42#
发表于 2017-3-23 17:34:43 |只看该作者
万建涛 发表于 2017-3-23 13:13
你是怎么解决的这个问题,我也是同样的问题

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

使用道具 举报

0

主题

0

好友

34

积分

新手上路

Rank: 1

43#
发表于 2017-9-10 12:43:11 |只看该作者
先生你好,可能是现在失效的id更多,抓取到的也是大概100多部,但是效率比较低,所以我按照之前的课程加入多线程,这样时间是减少了,可是为什么抓取下来,只成功了几部而已呢?

多线程代码.png (15.06 KB, 下载次数: 291)

多线程代码.png

回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

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

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

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

使用道具 举报

0

主题

0

好友

34

积分

新手上路

Rank: 1

45#
发表于 2017-9-12 09:56:01 |只看该作者
crossin先生 发表于 2017-9-10 15:14
没有任何输出和调试信息,无法仅从你的代码看出

可能是因为你没用 join,所以程序直接在创建完所有线程 ...

如果说只是怕主程序提前退出的话,用先生之前的加入一行input语句就应该可以搞定,试了下也是没效果(在for外面),关于join的用法,查询到应该是在所有的线程都开启后,逐个join,这样一来,线程的变量名就要逐个定义,感觉应该不是这样的用法,理解的有点浅,还望先生指教

对 关于报错的,在执行的时候会有这样的ERR错误,其余都无报错

20170911_212344.png (18.35 KB, 下载次数: 282)

20170911_212344.png

回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

46#
发表于 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
回复

使用道具 举报

0

主题

0

好友

34

积分

新手上路

Rank: 1

47#
发表于 2017-9-12 12:38:50 |只看该作者
crossin先生 发表于 2017-9-12 11:51
把你的try去掉,或者在except里输出报错信息,不然你这个看到的都是你自己输出的 error,把真实error覆盖 ...

请求太快会直接在我运行代码的时候就报错,添加了报错信息之后发现,显示为database is locked,然后查询了一下发现是sqlite 对多线程并发不是很支持,尤其是并发写入
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

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

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

使用道具 举报

0

主题

0

好友

74

积分

注册会员

Rank: 2

49#
发表于 2017-11-26 21:19:23 |只看该作者
先生,我有两个问题。
一是:movie250=data_json['subjects']是不是每循环一次,movie250的内容都只是当前捕获50条movie的内容?下一次会覆盖上一次的?
二是:movie_ids这个list中的250条数据是不是执行上述代码后获取的每一个ID数据?

捕获.PNG (14.12 KB, 下载次数: 273)

捕获.PNG

回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

50#
发表于 2017-11-27 01:35:57 |只看该作者
13253620252 发表于 2017-11-26 21:19
先生,我有两个问题。
一是:movie250=data_json['subjects']是不是每循环一次,movie250的内容都只是当前 ...

是的

这个你其实通过输出就可以看出,不清楚的变量都可以输出出来看
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

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

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

GMT+8, 2024-4-19 23:38 , Processed in 0.025262 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部