Sniper970119 / dianping_spider

大众点评爬虫(全站可爬,解决动态字体加密,非OCR)。持续更新
GNU General Public License v3.0
916 stars 160 forks source link

关于评论页被ban的问题 #44

Closed Fan-chen04 closed 1 year ago

Fan-chen04 commented 1 year ago

我反复用了4个不同的账号,出现评论页被ban的速度越来越快,最后两个账号发出不到10个评论页请求即被ban。 整个过程中有使用代理,requests_times参数设置为1,3;5,17;10,40

Sniper970119 commented 1 year ago

你的两个问题,首先是need first问题,确实是重构后这部分功能漏开发了,你可以在这个循环后手动判断参数break出去(需要注意break的只有一层循环,还有一个页数循环需要need_page)。

第二个问题,在只需要首页的前提下,请求风险更高(因为大众点评对于搜索页和详情页的监控是独立的,也就是说如果你使用请求了3次(分别为 搜索 详情 搜索),每次间隔2秒,搜索页的间隔就是4秒以上。这个时间可以是搜索页的安全时间。但是如果你need_first并且不需要detail,那么搜索间隔时间就是2秒。 其次你不仅缩小了搜索间隔时间,还更改了我的默认requests_times,使这种情况更加加剧了

Fan-chen04 commented 1 year ago

我的需求是爬取一家店铺的所有评论,所以need_first,只发送了一次搜索请求,主要是评论页的请求多,应该不会存在你说的问题。另外reques_times加剧被封不太理解,我的设置应该是比默认的1,2;3,5;10,50间隔更长吧? 我主要疑惑的地方在于为何评论页请求次数这么快速的被封,而且更换账号后在有代理的情况下被反爬发现的速度还越来越快,如何缓解出现评论页被封的频率。 另外提个建议,当前的程序若出现被ban的情况,会覆写该店铺的数据为"ban",导致先前爬取到的数据丢失。这点如果能做出调整会更好。

Fan-chen04 commented 1 year ago

使用了3个账号,Edge登录账号A,Chrome登录账号B,火狐登录账号C,爬取一段时间后A与B评论页被ban,C未被ban。 现发现 A账号切换至火狐登录时可正常访问评论页,而C账号切换至Edge登录后访问评论页出403

Sniper970119 commented 1 year ago

哦更长么 忘记了默认是多少,总之原因就是访问间隔太短了。 另外我也提到过,有些时候封号可以通过清空浏览器缓存重新登录缓解这一问题。

Fan-chen04 commented 1 year ago

清空缓存确实能够解决出现403的问题,谢谢,提供了很多帮助! 另外想问一下,程序出现评论页被ban,但用浏览器登录同一账号却能正常访问,看起来不像是封账号或cookies,但是IP又使用了代理池,所以想问一下这是什么情况,有没有好的解决方案,感谢。

Fan-chen04 commented 1 year ago

目前问题都已解决,建议不要用代理池(也可能是我的代理质量差)。多准备几个长效IP和账号来爬完全够个人使用。再次开发者!

newcworld commented 1 year ago

@Fan-chen04 可以加个联系方式吗,有个爬取评论页的需求

Fan-chen04 commented 1 year ago

@newcworld 还需要吗,才看见