Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

还是主题贴获取问题 #243

Open
Misaka19327 opened this issue Dec 6, 2024 · 6 comments
Open

还是主题贴获取问题 #243

Misaka19327 opened this issue Dec 6, 2024 · 6 comments
Labels
bug Something isn't working

Comments

@Misaka19327
Copy link

我不确定这个问题之前有没有提过,如果有实在抱歉orz

代码如下,还是获取所有的主题贴想要筛选。

    for page in range(start_page, end_page):
        threads = await client.get_threads(target_forum.fid, pn=page, rn=100)
        print(f"Fetched page {page}, {len(threads.objs)} threads")

        for thread in threads.objs:
            t = {
                "tid": thread.tid,
                ...
            }

            results.append(t)

之前看着数量差不多我就没太注意,不过今天我想要筛选出万赞以上帖的时候发现,至少有3个我确实知道的万赞以上的主题贴没有获取到。我又检查了一下之前获取过的数据,发现每次获取的数据再筛选后得到的,字面意义上的有得有失。可能这一次缺的是某一主题帖,下一次再获取筛选后这个缺的就补上了,但又缺了别的主题贴。我想知道大概的原因?

@lumina37 lumina37 added the bug Something isn't working label Dec 9, 2024
@lumina37
Copy link
Owner

lumina37 commented Dec 9, 2024

等我回国了看看

@Dilettante258
Copy link

你没有指定sort(排序方式)导致的吧,默认按回复方式排序的,你每次获取的新一页的时候,贴子的回复状况发生了变化,导致原来在这一页的,但是变动到其他页去了,因而导致了“有得有失”的情况。
建议可以考虑改成按热门或者发布时间排序。

@Misaka19327
Copy link
Author

既然提了那我也在这提另一个问题,代码不变的情况下,按发布时间排序获取就会导致获取到的主题帖数量直接腰斩
image
(字面义) @Dilettante258

@Dilettante258
Copy link

Dilettante258 commented Dec 14, 2024

既然提了那我也在这提另一个问题,代码不变的情况下,按发布时间排序获取就会导致获取到的主题帖数量直接腰斩

我这边解析了一下百度那边返回的protobuf数据。

按发帖时间排序

image

按回复时间排序

image
可以明显看见 按发帖时间排序 的话,最多只能看前10000个贴子,按回复时间则多得多,totalPage达到了9500页。所以这是百度的限制问题咯。

@Misaka19327

@Misaka19327
Copy link
Author

明白了 十分感谢 @Dilettante258

@Dilettante258
Copy link

我想你可以按时间顺序抓帖子,抓完之后,再重新抓一下前几页的内容,再去重。毕竟在你抓这一页时,“消失”的帖子位置只会提前。🤔 你到时候解决好了可以分享一下思路,我也在做帖子批量爬取的工作。 @Misaka19327

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants