jerrylaikr

Results 3 issues of jerrylaikr

现有的MongoDB设置文档描述感觉不是很清楚,尤其是"dba_name"和"dba_password"。 当MongoDB只有一个用户时,如果仿照config_sample.json中的格式填入: ``` "mongo_config": { "connection_string": "mongodb://admin:password@localhost:27017/weibo", "dba_name": "admin", "dba_password": "password" } ``` 会产生如下报错: ``` pymongo.errors.OperationFailure: Another user is already authenticated to this database. You must logout first. ``` 将"dba_name"和"dba_password"改为空字符串也会产生同样报错。改为null或移除"dba_name"和"dba_password"均不可行。我自己找到的解决方法是去除uri中的username和password部分,或者在设置文件中将"dba_name"和"dba_password"改为空格`"...

因为没找到相关的issue所以感觉不是很紧要的问题,后续有需要我再整理详细的信息。 我自己基于此项目二次开发魔改的时候有几次遇到时区错乱的问题,个人感觉主要是`PageParser.get_publish_time()`方法利用相对时间转换成绝对时间造成的。如果系统时区是UTC那么爬取到最近发布的微博,发布时间都会变成UTC,如果系统时区是北京时间则会保存北京时间。 我在网页端也没找到什么办法可以强制显示绝对时间,在爬虫代码中试图统一了一下时区,凑合着是能稳定一些些,但是修改过程太混乱导致整个branch严重spaghetti code化。 综上所述,我瞎改的就不太好提交PR了,感觉可以讨论一下有些什么可能的解决思路。 以下是最近爬的内容,因为魔改了很多代码,所以无法保证能在原生版本中复现: ![image](https://user-images.githubusercontent.com/63005821/190565517-27f94b47-ffd7-488e-9a1b-99e6dbcc43da.png) ![image](https://user-images.githubusercontent.com/63005821/190565627-1306d499-1bef-4f25-bc2a-cf1142729be9.png) 这两条实际发布时间间隔不到一小时,爬取图一的系统时区是UTC,而图二的系统时区是北京时间。

- 问:请您指明哪个版本出了bug(github版/PyPi版/全部)? 答:github版 - 问:您使用的是否是最新的程序(是/否)? 答:是 - 问:爬取任意用户都会复现此bug吗(是/否)? 答:否 - 问:若只有爬特定微博时才出bug,能否提供出错微博的weibo_id或url(非必填)? 答:一个例子:weibo_id=1555113427 - 问:若您已提供出错微博的weibo_id或url,可忽略此内容,否则能否提供出错账号的**user_id**及您配置的**since_date**,方便我们定位出错微博(非必填)? 答:N/A - 问:如果方便,请您描述bug详情,如果代码报错,最好附上错误提示。 答:最近微博的更新允许用户有多个(也可能最多只有两个)置顶微博,但是在爬取到的xml中只有第一个会被标注为“置顶”。例子见以下截图: ![Screenshot 2022-09-03 215658](https://user-images.githubusercontent.com/63005821/188293830-ef5c301d-a3cd-460e-8e50-6309abffb67b.png) 这个更新导致如果爬取时间范围较窄,爬到第二个置顶微博时有很大可能性会直接识别为超出时间范围而终止爬取。 第一个置顶微博可以被正确识别为置顶,并不对发布时间进行检查。但是第二个因为没有置顶标签`置顶`会检查发布时间,而置顶微博的发布时间多半都在设定的爬取时间范围之外。

bug