bakemonor | 1 points | Dec 04 2021 15:49:31

cs老嗨进,关于爬虫的问题

因为之前微博号被橄榄,就学了下爬虫把收藏的几十页图存了下来。今天我准备在销红迪号之前也把save的nsfw图存到本地。但是有个问题

红迪的saved界面并没有“下一页“按钮,是等滚动条往下滚到底后才会加载新的收藏项,抓了包也没搞懂是怎么回事。因此我没办法一次性获取收藏界面帖子的所有地址

最基本的requests,xpath本鼠还是会一点(毕竟之前把微博爬了),主要就是上面的问题没法解决,有无cs大手子指点一两句,本鼠先行谢过。

[-] tianlongren2 | 5 points | Dec 04 2021 16:02:30

用selenium可以执行js代码下拉网页

[-] bakemonor | 1 points | Dec 04 2021 16:07:02

好的我试试

[-] tianlongren2 | 1 points | Dec 04 2021 16:09:28

我只会python 用selenium

js='return document.body.scrollHeight;' driver.execute_script(js) 然后写个循环,根据高度变化判断是否拉到底了

[-] okchillbrobreath | 5 points | Dec 04 2021 16:02:37

gql.reddit.com这个地址 带时间戳,注意返回的start_cursor和end_cursor,post的时候after=end_cursor,first=25是条数,不明白就把控制台打开把请求导入到postman慢慢看

[-] bakemonor | 1 points | Dec 04 2021 16:11:07

谢谢回复,我还是按照前面老哥说的看看selenium罢

[-] Maojuicy | 4 points | Dec 04 2021 16:07:16

直接上selenium吧。核心问题就是infinite scroll。你只需要确定当前页面最后加载的element,然后让 selenium下拉就好了

[-] bakemonor | 1 points | Dec 04 2021 16:08:38

确实,我之前找的教程也有说selenium,不过我发现我把前面的学了就满足我当时的需求了,看来还得学完才行

[-] Maojuicy | 3 points | Dec 04 2021 16:14:20

你前面学的那些应该是不涉及到网页有复杂元素的。一旦页面变复杂,很多东西就不一样了。

不过selenium现在有一些很傻瓜的自动化工具,你可以找一个模拟一下点击,然后用工具生成的代码改一下就可以。而且reddit爬虫非常多,随便找一个就行。

[-] arkcompiler | 1 points | Dec 05 2021 05:08:46

用playwright,无限下拉

[-] LmA0_ZeD0nG | 1 points | Dec 05 2021 12:05:40

github有现成的

[-] bakemonor | 1 points | Dec 05 2021 12:17:51

好的,我刚好也弄完我的,看看区别