今天心血来潮,想爬取起点vip小说章节,花费了足足0.27大洋后,悟出来一个人生道理,这个应该是爬不下来。但是这0.27大洋也教会了我两个知识点。
1.服务器只会响应客户端的请求,不会主动给客户端发送信息
例如我爬取的这一章vip章节

客户端就会一直向服务器发送checkStatus?_csrfToken=w7RePr18qXzxByPdIn0h7iQtII0AC4z8oPMIXioz的请求,如果我没有付钱,服务器就会返回

如果我付钱了
就会返回
{"code":0,"data":{"readUrl":"//vipreader.qidian.com/chapter/3242304/67958436"},"msg":"suc"}
接收到这个返回后客户端会在发送一个请求章节内容的request(是不是我冒充服务器给浏览器发一个{"code":0,"data":{"readUrl":"//vipreader.qidian.com/chapter/3242304/67958436"},"msg":"suc"}
的response,浏览器就会发一个请求全部内容的request,是不是就可以获得全部章节内容,就可以爬取vip章节了,前提是服务器不会在验证我是否已经付钱),这时候如果验证我猜服务器会去数据库查查我这个用户有没有付钱,如果有的话就会返回全部章节信息,如果没有的话就返回试读的信息(这是不是一个反爬虫的手段?服务器再次验证是否有vip权限)。
所以目前我认为 如果不修改起点数据库中我付费字段的标记,那应该是爬取不到全部vip章节信息的。
2.cookie是服务器识别用户的手段
因为我付费是在谷歌浏览器付费,所以当我输入
https://vipreader.qidian.com/ajax/chapter/chapterInfo?_csrfToken=w7RePr18qXzxByPdIn0h7iQtII0AC4z8oPMIXioz&bookId=3242304&chapterId=67743698&authorId=4362948
谷歌浏览器显示全部章节内容:

但是换一个浏览器后,输入相同的网址,则只会显示试读内容:

网友评论