新手请教两个问题 限时输入和实时暂停

2015-09-28 12:09:44 +08:00
 hcwhan
刚看 python,在试着写爬虫,遇到两个问题请教下大家,谢谢了(python 3.5.0 64bit)

1. 在获取用户输入时,设定一个时间,
限时内,有输入为输入
无输入则设定输入为一个默认值

2.在一个下载 for 循环中,如何做到在 cmd 运行中想暂停就可以暂停
谢谢
2591 次点击
所在节点    Python
21 条回复
hcwhan
2015-09-28 12:11:38 +08:00
我想的第二个问题解决办法就是 设定一个很短时间的 1 所用的获取输入
iwannaflytomoon
2015-09-28 12:16:28 +08:00
1) while True: , 内部计时, 有输入或者到时间后 break
2) 发信号
hcwhan
2015-09-28 12:20:23 +08:00
@iwannaflytomoon
1)输入函数不是会暂停函数,如何实现计时?
hcwhan
2015-09-28 12:21:22 +08:00
@iwannaflytomoon
2)发信号 不懂什么意思啊 哭了 能说一下是那个函数吗?
MrGba2z
2015-09-28 12:23:13 +08:00
iwannaflytomoon
2015-09-28 12:24:25 +08:00
@hcwhan
1) 其实我不太明白你第一个需求是什么意思,一个 spider 为啥需要用户输入?
2) linux 的信号, 在 python 中 import signal, 不懂可以 google 一下
hcwhan
2015-09-28 12:27:36 +08:00
@iwannaflytomoon
1)是用来确认是否对失败列表进行重试的,默认 2s 无输入重试
2)谢谢
hcwhan
2015-09-28 12:27:54 +08:00
@MrGba2z 是这个 非常感谢
iwannaflytomoon
2015-09-28 12:47:18 +08:00
@hcwhan
这种一般用配置文件就 ok 了, 或者你打个日志, 失败的可以来爬第二遍

spider 一般都是多线程来抓取的, 一般不会设计成人机交互式的⊙﹏⊙b 汗
cdxem713
2015-09-29 16:20:14 +08:00
@hcwhan 额,你这个需求岂不是需要有个人实时监控这个爬虫了,而且还是不能开小差那种
爬虫尽量做到自动化,不要过多的交互,@lwannaflytomoon 已经提到重试和 Log 。这种方式才是正常的。
cdxem713
2015-09-29 16:22:04 +08:00
@hcwhan 第二个需求可以通过将爬虫队列持久化实现,每次重启爬虫后检查一下之前存储的队列
hcwhan
2015-09-30 08:01:19 +08:00
@cdxem713 额 就是为了实现自动化 是默认重试的 想失败次数过多后给一个选择中断继续
用多线程来做的
hcwhan
2015-09-30 08:04:55 +08:00
@cdxem713 现在写的是每次下载一个文件 用多线程下载这个文件
准备改成多线程同时下载几个文件 每个文件同时用多线程下载
hcwhan
2015-09-30 08:06:39 +08:00
@cdxem713 问题是感觉多线程同时下载几个文件 log 就会有点混乱
cdxem713
2015-09-30 08:27:59 +08:00
@hcwhan 类似于下载器?多线程下载文件么?
hcwhan
2015-09-30 08:48:42 +08:00
cdxem713
2015-09-30 09:19:07 +08:00
@hcwhan 可否用现成的下载器进行下载呢?爬虫专注做链接发现,程序复杂度可能会低一些。
hcwhan
2015-09-30 09:37:14 +08:00
@cdxem713 恩 小白 就用的 python3.5.0 自带 urllib
hcwhan
2015-09-30 09:39:22 +08:00
@cdxem713 只知道标准库 有什么网络方面的库值得推荐?
cdxem713
2015-09-30 09:55:06 +08:00
@hcwhan github 上面找一下?我也没学几天 Python 。
我是觉得在爬虫里面还有实现多线程下载太复杂了,你单独开发多线程下载,用参数传进去启动都会好一些,而且调试也方便。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/224208

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX