python - 如何爬取登录后的socket连接
PHP中文网
PHP中文网 2017-04-18 10:30:17
0
2
460

需要爬取一个登录以后的socket连接,这个socket会不定期的传数据到网页上,然后我目前只能通过不断刷新网页去完成,有没有什么好的办法可以去爬取需要网页登录后的socket呢?

===
继续描述:

已实现的部分

  • 模拟登录 (selenium模拟登录)

  • 伪造UA,刷新cookies,刷新sessionID(通过不停的登录登出换cookie,定时结束webdriver再重启来刷新sessionID)

  • 通过Xpath 来获取页面的数据(lxml)

想要的结果(未实现)

他的socket数据是这样传给浏览器的,我就是想用python搞个socket client接进这个socket,然后等服务器推给我数据.

抽象化的问题

总的来说,爬一个时间点的数据并不困难,但是对于长连接的持续爬虫,持续监控,响应式监控我在网上找不到好的办法,如果是设置定时任务去爬虫,则当采样周期过小的时候(小于1秒),则运算等成本过高且容易被封掉,有没有什么好的办法呢

PHP中文网
PHP中文网

认证0级讲师

répondre à tous(2)
洪涛

HTTP est sans état, donc votre 登陆以后 statut est déterminé en transmettant une ou plusieurs valeurs spéciales au serveur (généralement dans le champ cookie de l'en-tête du message).
Attrapez le paquet HTTP, puis apportez ces valeurs spéciales lors de la simulation.


Mettre à jour le contenu :
Voir le code d'état. Cela devrait signifier que la connexion a été remplacée par websocket, cette page doit donc être fournie par l'autre partie. Vous pouvez regarder le code source de la page, il devrait y avoir un contenu comme var ws = new WebSocket("ws://ip:3000");.
Examinez les exigences de l'autre client, puis réécrivez la fonction de rappel ws.onmessage. Le contenu de cette fonction est à votre discrétion. Vous pouvez l'utiliser pour déterminer si un nouveau contenu a été renvoyé ou pour demander à un autre serveur de le faire. traiter le nouveau contenu.
Vous pouvez jeter un œil à la partie 客户端 de cet article Chat en temps réel sur des pages Web utilisant PHP pour implémenter websocket, et essayer de le modifier pour répondre à vos besoins.

刘奇

Trouvez simplement une bibliothèque cliente websockt et tout ira bien

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!