bakemonor | 1 points | Dec 04 2021 15:49:31
cs老嗨进,关于爬虫的问题因为之前微博号被橄榄,就学了下爬虫把收藏的几十页图存了下来。今天我准备在销红迪号之前也把save的nsfw图存到本地。但是有个问题:
红迪的saved界面并没有“下一页“按钮,是等滚动条往下滚到底后才会加载新的收藏项,抓了包也没搞懂是怎么回事。因此我没办法一次性获取收藏界面帖子的所有地址
最基本的requests,xpath本鼠还是会一点(毕竟之前把微博爬了),主要就是上面的问题没法解决,有无cs大手子指点一两句,本鼠先行谢过。
[-] 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
好的,我刚好也弄完我的,看看区别
[-] 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) 然后写个循环,根据高度变化判断是否拉到底了