Nodejs 爬虫登录遇到问题
Nodejs 爬虫登录遇到问题
目标,设计一个爬虫把所有的某站地址资料爬下来,有登录限制,其实这都不是重点,重点在那个站点登录之前会发送一个请求根据返回过来的结果编码提交的密码,这里已经解决了,问题在,每次提交密码的时候都会在 header 头的 cookie 里存在一个 token,且只能使用一次,我想知道这个功能怎么实现的(后端),现在如何把这个 token 拿到?
可能得不到答案,我知道这样提问是不好的,但我不知道如何描述我明白的东西
csrf token?
已经搞定了
据说回复不支持 markdown
,冲了会员搞得- -
发现了。。。
需要下载 500d 的可以去 http://500d.yio.me 口令 yio
在Node.js中进行爬虫登录时,常见的问题可能包括请求被拦截、验证码验证、登录参数不正确等。以下是一些常见问题的解决方法及代码示例:
-
请求被拦截: 确保请求头中包含必要的信息,如
User-Agent
、Referer
等,以模拟正常用户的浏览器行为。const axios = require('axios'); const headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3', 'Referer': 'http://example.com' }; axios.post('http://example.com/login', {username: 'yourUsername', password: 'yourPassword'}, {headers: headers}) .then(response => console.log(response.data)) .catch(error => console.error(error));
-
验证码验证: 如果网站使用验证码进行登录保护,需要解析验证码并手动输入。这通常需要使用OCR技术或第三方服务。
-
登录参数不正确: 检查登录表单的提交URL、请求方法(GET/POST)、以及请求体中的参数是否正确。可以使用浏览器的开发者工具(如Chrome的DevTools)来捕获和分析登录请求。
-
处理Cookies: 登录成功后,服务器通常会返回一个或多个Cookie。需要在后续请求中携带这些Cookie以保持会话状态。
axios.defaults.withCredentials = true; // 自动处理Cookies
如果以上方法仍然无法解决问题,建议检查网络请求是否受到防火墙或代理的影响,或者尝试使用其他Node.js爬虫库如puppeteer
进行更高级的操作。