whusnoopy / renrenBackup

A backup tool for renren.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Export時出現錯誤

sfs00784 opened this issue · comments

  1. Fetch 成功了
  2. python export.py backup.tar 時,blog出如下錯誤,导致长时间停:
    File "export.py", line 167, in
    export_all(tar_name)
    File "export.py", line 145, in export_all
    export_blogs(client_app, user['uid'])
    File "export.py", line 118, in export_blogs
    save_file(client, '/blog/{blog_id}'.format(blog_id=blog['id']))
    File "export.py", line 51, in save_file
    output_html = trans_relative_path(resp.data.decode(), local_path)
    File "export.py", line 36, in trans_relative_path
    flags=re.M | re.DOTALL)
    File "C:\Users\xxx.virtualenvs\renrenBackup-master-RLOICigy\lib\re.py", line 192, in sub
    return _compile(pattern, flags).sub(repl, string, count)

註:在python web.py中显示正常

这个感觉是有人在 blog 里嵌了其他的相册链接,导致转化路径时出错,因为 36 行时在转相册的相对路径

这块你可以先试试看把 save_file 时的 blog_id 打出来,然后看看那篇 blog 里有没有嵌相册链接,可以试试看先跳过去

回头我把整个程序日志体系梳理下,好在报错时能更好的把错误现场直接给出来

重新在本地测试了下,应该是 #12 里的替换正则写的太广,导致遇到页面复杂时就会卡在那。而 #12 的很多判断是不必要的或者可以有更好的解决办法,已经在最新的代码里解决掉了

可以重新测试导出看看,如果还有问题,将 log/renrenBackup.log 里的最后那部分日志粘出来看看

Exception on /blog/418609634 [GET]
Traceback (most recent call last):
File "C:\Users\XXX.virtualenvs\renrenBackup-master-RLOICigy\lib\site-packages\peewee.py", line 2683, in execute_sql
cursor.execute(sql, params or ())
sqlite3.OperationalError: too many SQL variables

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Users\XXX.virtualenvs\renrenBackup-master-RLOICigy\lib\site-packages\flask\app.py", line 2292, in wsgi_app
response = self.full_dispatch_request()
File "C:\Users\XXX.virtualenvs\renrenBackup-master-RLOICigy\lib\site-packages\flask\app.py", line 1815, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Users\XXX.virtualenvs\renrenBackup-master-RLOICigy\lib\site-packages\flask\app.py", line 1718, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\XXX.virtualenvs\renrenBackup-master-RLOICigy\lib\site-packages\flask_compat.py", line 35, in reraise
raise value
File "C:\Users\XXX.virtualenvs\renrenBackup-master-RLOICigy\lib\site-packages\flask\app.py", line 1813, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Users\XXX.virtualenvs\renrenBackup-master-RLOICigy\lib\site-packages\flask\app.py", line 1799, in dispatch_request
return self.view_functionsrule.endpoint
File "I:\renrenBackup-master\web.py", line 116, in blog_detail_page
extra = entry_comments_api(entry_id=blog_id)
File "I:\renrenBackup-master\web.py", line 66, in entry_comments_api
for u in User.select().where(User.uid.in_(uids)).dicts():
File "C:\Users\XXX.virtualenvs\renrenBackup-master-RLOICigy\lib\site-packages\peewee.py", line 5952, in iter
self.execute()
File "C:\Users\XXX.virtualenvs\renrenBackup-master-RLOICigy\lib\site-packages\peewee.py", line 1604, in inner
return method(self, database, *args, **kwargs)
File "C:\Users\XXX.virtualenvs\renrenBackup-master-RLOICigy\lib\site-packages\peewee.py", line 1675, in execute
return self._execute(database)
File "C:\Users\XXX.virtualenvs\renrenBackup-master-RLOICigy\lib\site-packages\peewee.py", line 1826, in _execute
cursor = database.execute(self)
File "C:\Users\XXX.virtualenvs\renrenBackup-master-RLOICigy\lib\site-packages\peewee.py", line 2696, in execute
return self.execute_sql(sql, params, commit=commit)
File "C:\Users\XXX.virtualenvs\renrenBackup-master-RLOICigy\lib\site-packages\peewee.py", line 2690, in execute_sql
self.commit()
File "C:\Users\XXX.virtualenvs\renrenBackup-master-RLOICigy\lib\site-packages\peewee.py", line 2481, in exit
reraise(new_type, new_type(*exc_args), traceback)
File "C:\Users\XXX.virtualenvs\renrenBackup-master-RLOICigy\lib\site-packages\peewee.py", line 178, in reraise
raise value.with_traceback(tb)
File "C:\Users\XXX.virtualenvs\renrenBackup-master-RLOICigy\lib\site-packages\peewee.py", line 2683, in execute_sql
cursor.execute(sql, params or ())
peewee.OperationalError: too many SQL variables

这个看起来是这篇日志的回复人数太多了,导致 SQL 爆掉了,之前偷懒没做分段取还是有坑啊 😅

一会修掉来