需要爬取一个登录以后的socket连接,这个socket会不定期的传数据到网页上,然后我目前只能通过不断刷新网页去完成,有没有什么好的办法可以去爬取需要网页登录后的socket呢?
===
继续描述:
模拟登录 (selenium模拟登录)
伪造UA,刷新cookies,刷新sessionID(通过不停的登录登出换cookie,定时结束webdriver再重启来刷新sessionID)
通过Xpath 来获取页面的数据(lxml)
他的socket数据是这样传给浏览器的,我就是想用python搞个socket client接进这个socket,然后等服务器推给我数据.
总的来说,爬一个时间点的数据并不困难,但是对于长连接的持续爬虫,持续监控,响应式监控我在网上找不到好的办法,如果是设置定时任务去爬虫,则当采样周期过小的时候(小于1秒),则运算等成本过高且容易被封掉,有没有什么好的办法呢
HTTP是无状态的,所以你的
登陆以后
状态是通过传给服务器一个或多个特殊值(一般在报文头的cookie字段里)来确定的。抓一下HTTP包,然后模拟时带上这些特殊值就OK了。
更新内容:
你可以看一下这篇文章 网页实时聊天之PHP实现websocket 的看到它Status Code了,这应该是将连接换成websocket了,那么这个页面一定是对方来提供的了。你可以看一下页面的源码,应该会有
var ws = new WebSocket("ws://ip:3000");
之类的内容。var ws = new WebSocket("ws://ip:3000");
之类的内容。看一下对方客户端的要求,然后改写
ws.onmessage
回调函数,这个函数的话内容就任你拿捏了,你可以用它来判断返回了新内容或者再去请求另一个服务器来处理这些新内容。你可以看一下这篇文章 网页实时聊天之PHP实现websocket 的
客户端
看一下对方客户端的要求,然后改写ws.onmessage
回调函数,这个函数的话内容就任你拿捏了,你可以用它来判断返回了新内容或者再去请求另一个服务器来处理这些新内容。客户端
部分,试着修改来实现你的需求。🎜找个websockt客户端库连就好了啊