iambus / xunlei-lixian

迅雷离线下载脚本
Other
1.97k stars 377 forks source link

wget auto retry on HTTP 400 #410

Open jkldgoefgkljefogeg opened 10 years ago

jkldgoefgkljefogeg commented 10 years ago

有时候迅雷的服务器有问题文件无法下载 (从迅雷离线网页版同样得到HTTP 400) 会自动退出 可以加上自动重试吗? 重新连接http://gdl.lixian.vip.xunlei.com/ 这样有可能被302到另一个可用的节点, 如果还不行 (302到同一个故障节点), 逐一测试节点 (把gdl.lixian.vip.xunlei.com换成dl.$NODE.lixian.vip.xunlei.com比如dl.i.lixian.vip.xunlei.com) 最近400很频繁需要不停的手工重启下载

Resolving vod18.c11.lixian.vip.xunlei.com (vod18.c11.lixian.vip.xunlei.com)... 122.143.6.190 Connecting to vod18.c11.lixian.vip.xunlei.com (vod18.c11.lixian.vip.xunlei.com)|122.143.6.190|:443... connected. HTTP request sent, awaiting response... 400 Bad Request 2014-09-03 23:41:13 ERROR 400: Bad Request.

Traceback (most recent call last): File "/home/ttp/bin/lx", line 63, in execute_command() File "/home/ttp/bin/lx", line 60, in execute_command commandscommand File "/home/ttp/src/xunlei-lixian/lixian_cli_parser.py", line 165, in parse return f(parser(args_list, _args, *_kwargs)) File "/home/ttp/src/xunlei-lixian/lixian_commands/download.py", line 325, in download_task download_multiple_tasks(client, tasks, download_args) File "/home/ttp/src/xunlei-lixian/lixian_commands/download.py", line 227, in download_multiple_tasks download_single_task(client, task, options) File "/home/ttp/src/xunlei-lixian/lixian_commands/download.py", line 191, in download_single_task download_file(client, path, f, options) File "/home/ttp/src/xunlei-lixian/lixian_commands/download.py", line 120, in download_file download2(client, url, path, task) File "/home/ttp/src/xunlei-lixian/lixian_commands/download.py", line 110, in download2 download1_checked(client, url, path, size) File "/home/ttp/src/xunlei-lixian/lixian_commands/download.py", line 99, in download1_checked download1(download, path) File "/home/ttp/src/xunlei-lixian/lixian_commands/download.py", line 93, in download1 download() File "/home/ttp/src/xunlei-lixian/lixian_download_tools.py", line 29, in call self.tool(self.client, self.url, self.path, self.resuming) File "/home/ttp/src/xunlei-lixian/lixian_download_tools.py", line 71, in wget_download raise Exception('wget exited abnormally') Exception: wget exited abnormally

节点列表

爱普

dl.h.lixian.vip.xunlei.com

教育

dl.i.lixian.vip.xunlei.com

长宽

dl.g.lixian.vip.xunlei.com

铁通

dl.f.lixian.vip.xunlei.com

小运营商合作代理

dl.u.lixian.vip.xunlei.com dl.u1.lixian.vip.xunlei.com dl.u2.lixian.vip.xunlei.com

电信

dl.t1.lixian.vip.xunlei.com dl.t3.lixian.vip.xunlei.com dl.t4.lixian.vip.xunlei.com dl.t5.lixian.vip.xunlei.com dl.t6.lixian.vip.xunlei.com dl.t7.lixian.vip.xunlei.com dl.t8.lixian.vip.xunlei.com dl.t9.lixian.vip.xunlei.com dl.t10.lixian.vip.xunlei.com dl.t11.lixian.vip.xunlei.com dl.t12.lixian.vip.xunlei.com dl.t13.lixian.vip.xunlei.com dl.t14.lixian.vip.xunlei.com dl.t15.lixian.vip.xunlei.com dl.t16.lixian.vip.xunlei.com dl.t17.lixian.vip.xunlei.com dl.t18.lixian.vip.xunlei.com dl.t19.lixian.vip.xunlei.com dl.t20.lixian.vip.xunlei.com dl.t21.lixian.vip.xunlei.com dl.t22.lixian.vip.xunlei.com dl.t23.lixian.vip.xunlei.com dl.t24.lixian.vip.xunlei.com dl.t25.lixian.vip.xunlei.com dl.t26.lixian.vip.xunlei.com dl.t27.lixian.vip.xunlei.com dl.t28.lixian.vip.xunlei.com dl.t29.lixian.vip.xunlei.com dl.t30.lixian.vip.xunlei.com dl.t31.lixian.vip.xunlei.com dl.t32.lixian.vip.xunlei.com dl.t33.lixian.vip.xunlei.com dl.t34.lixian.vip.xunlei.com

网通

dl.c1.lixian.vip.xunlei.com dl.c3.lixian.vip.xunlei.com dl.c4.lixian.vip.xunlei.com dl.c5.lixian.vip.xunlei.com dl.c6.lixian.vip.xunlei.com dl.c7.lixian.vip.xunlei.com dl.c8.lixian.vip.xunlei.com dl.c9.lixian.vip.xunlei.com dl.c10.lixian.vip.xunlei.com dl.c11.lixian.vip.xunlei.com dl.c12.lixian.vip.xunlei.com dl.c13.lixian.vip.xunlei.com dl.c14.lixian.vip.xunlei.com dl.c15.lixian.vip.xunlei.com dl.c16.lixian.vip.xunlei.com dl.c17.lixian.vip.xunlei.com dl.c18.lixian.vip.xunlei.com dl.c19.lixian.vip.xunlei.com dl.c20.lixian.vip.xunlei.com dl.c21.lixian.vip.xunlei.com dl.c22.lixian.vip.xunlei.com dl.c23.lixian.vip.xunlei.com dl.c24.lixian.vip.xunlei.com dl.c25.lixian.vip.xunlei.com

dl.c26.lixian.vip.xunlei.com

迅雷最近一年好像没怎么添加节点 过去每个月都会多出来节点..

jkldgoefgkljefogeg commented 9 years ago

Traceback (most recent call last): File "/home/ttp/bin/lx", line 63, in execute_command() File "/home/ttp/bin/lx", line 60, in execute_command commandscommand File "/home/ttp/src/xunlei-lixian/lixian_cli_parser.py", line 165, in parse return f(parser(args_list, _args, _kwargs)) File "/home/ttp/src/xunlei-lixian/lixian_commands/download.py", line 325, in download_task download_multiple_tasks(client, tasks, download_args) File "/home/ttp/src/xunlei-lixian/lixian_commands/download.py", line 227, in download_multiple_tasks download_single_task(client, task, options) File "/home/ttp/src/xunlei-lixian/lixian_commands/download.py", line 153, in download_single_task files, skipped, single_file = lixian_query.expand_bt_sub_tasks(task) File "/home/ttp/src/xunlei-lixian/lixian_query.py", line 443, in expand_bt_sub_tasks files = task['base'].get_files(task) # XXX: a dirty trick to cache requests File "/home/ttp/src/xunlei-lixian/lixian_query.py", line 69, in get_files self.files[id] = self.client.list_bt(task) File "/home/ttp/src/xunlei-lixian/lixian.py", line 588, in list_bt html = remove_bom(self.urlread(url)).decode('utf-8') File "/home/ttp/src/xunlei-lixian/lixian.py", line 266, in urlread data = self.urlread1(url, _args) File "/home/ttp/src/xunlei-lixian/lixian.py", line 257, in urlread1 response = self.urlopen(url, _args) File "/home/ttp/src/xunlei-lixian/lixian.py", line 21, in withretry return f(_args, _kwargs) File "/home/ttp/src/xunlei-lixian/lixian.py", line 247, in urlopen return self.opener.open(urllib2.Request(url, _args), timeout=60) File "/usr/lib/python2.6/urllib2.py", line 397, in open response = meth(req, response) File "/usr/lib/python2.6/urllib2.py", line 510, in http_response 'http', request, response, code, msg, hdrs) File "/usr/lib/python2.6/urllib2.py", line 435, in error return self._call_chain(_args) File "/usr/lib/python2.6/urllib2.py", line 369, in _call_chain result = func(args) File "/usr/lib/python2.6/urllib2.py", line 518, in http_error_default raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) urllib2.HTTPError: HTTP Error 400: Bad Request

iambus commented 9 years ago

之前加过一个参数--node,不知道有没有帮助?比如:

lx d --node=vod12

可以把解析后vod18.c11.lixian.vip.xunlei.com替换成vod12.c11.lixian.vip.xunlei.com

jkldgoefgkljefogeg commented 9 years ago

node is c1-c26, i, t1-t34 etc. vod{number} refers to the servers within the node. Based on my observation the file is only on one server per node. So changing server number (vod) doesn't work.