Skip to content

Comments

fix bugs mentioned in multi-file mode#92

Merged
dataabc merged 1 commit intodataabc:multi-filefrom
songzy12:master
Nov 14, 2019
Merged

fix bugs mentioned in multi-file mode#92
dataabc merged 1 commit intodataabc:multi-filefrom
songzy12:master

Conversation

@songzy12
Copy link
Collaborator

修复了上次 pull request 里的两个 bug:

  1. 正确的 csv 表头顺序
  2. 支持并行多种 write mode

@dataabc
Copy link
Owner

dataabc commented Nov 13, 2019

感谢贡献代码。

第一个问题已经修复了;
第二个还有问题,
https://github.com/songzy12/weibo-spider/blob/master/writer.py#L26
这些判断是互斥的,只要前一个满足条件,后面的就一定不满足。如果要同时写多个mode,代码只会写第一个满足判断条件的类型,把后面的三个elif改成if就可以同时写多个类型了。

再次感谢

@songzy12
Copy link
Collaborator Author

2333 我实在是太粗心了。

@songzy12
Copy link
Collaborator Author

已修复~

@dataabc dataabc merged commit efb9222 into dataabc:multi-file Nov 14, 2019
@dataabc
Copy link
Owner

dataabc commented Nov 14, 2019

已修复~

感谢,赞

刚刚测试了下代码,程序很棒。

还有几个能够优化的地方,不过问题不大。这也是我一直想说但不好意思说的地方,因为为开源项目贡献代码本来就是一件非常伟大的事情,有奉献精神。只是如果我说太多需要优化的地方,感觉有点吹毛求疵。但是如果不说,又觉得对不起这种极客精神。所以,我只是说一下对我来说想要优化的地方,仅仅是建议,不一定要贡献代码,因为现在的代码没有问题。

  • 部分文件中import了一些没有用到的库,部分编辑器如vs code会对此有一些错误标记,虽然可以正确运行,但容易引起强迫症的不适:joy:;
  • 程序好像不能把所有user_id都写到txt文件里,然后读文件。读文件的好处是更方便写注释,比如写id对应的用户名等,也让用户多了一个选择;
  • python3.5版本会报错,python3.6及以后的版本可以正确运行,如果不考虑老版本的兼容问题,可以忽略这一项。

以下是建议,这些我也没有完成,最近刚想到的:

  • 在数据库mode,如果没有安装数据库或对应的库,程序就会报错,可以捕捉错误类型,反馈给使用者,“没有安装xx,请先安装再运行程序”
  • 自动更新,目标微博账户可能一直在发新微博,config中的since_date不一定是日期,可以是数字。使用者只需要在第一次爬的时候定义一个时间,以后把since_date赋值成想要更新的时间间隔,如10,代表爬最近10天的微博,然后程序把since_date转换从当前日期减10。使用者只需要利用第三方软件,如crontab ,每隔10天执行一次,就可以实现自动更新了。

以上,仅仅是我认为可以改进的地方,不一定要贡献代码,而且我想的也不一定对。

@songzy12
Copy link
Collaborator Author

感谢建议。

程序好像不能把所有user_id都写到txt文件里,然后读文件。读文件的好处是更方便写注释,比如写id对应的用户名等,也让用户多了一个选择;

这一小部分没有太看懂,能再说明一下嘛?

这些建议都非常好,下次我来更新一下。

@dataabc
Copy link
Owner

dataabc commented Nov 15, 2019

当前代码好像是把所有要爬的user_id写到config文件里,程序通过读config里的user_id_list获取user_id,然后再爬对应的微博。

我的意思是,除了这种方式,还可以把要爬的user_id放到一个txt文件里,文件名任意,程序通过读这个txt文件获取要爬的user_id。config的user_id_list既可以是现在这种user_id列表,也可以是存储user_id文件的路径,txt的内容可以是如下形式:

1223178222 胡歌
1669879400 迪丽热巴
1729370543 郭碧婷

前面是user_id,后面是注释,如对应的用户昵称,也可以是其它注释。这样可能更清晰,否则使用者看到的只是一串串数字。注释属于非必选项,写不写都可以,只是让使用者多了一个选择。

https://github.com/dataabc/weiboSpider/blob/master/weiboSpider.py#L853
我是通过这种方式读的文件,不一定对,仅供参考。因为曾经有使用者反馈过,我自己也试验过。发现如果使用者的txt文件使用了非utf-8编码,少数情况下会出错。这种情况非常少见,因为大部分编辑器的默认编码都可以正确运行。我也是故意使用不常见的编码才复现错误,现在还没有合适的解决方案。因为这个问题极少出现,所以也可以忽略。

@songzy12
Copy link
Collaborator Author

哦哦懂了,多谢解释。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants