请教高手,网页数据抓取问题?

请教高手,网页数据抓取问题?,第1张

方法一:直接抓取网页源码

优点:速度快。

缺点:1,正由于速度快,易被服务器端检测,可能会限制当前ip的抓取。对于这点,可以尝试使用ip代码解决。

2,如果你要抓取的数据,是在网页加载完后,js修改了网页元素,无法抓取。

3,遇到抓取一些大型网站,如果需要抓取如登录后的页面,可能需要破解服务器端帐号加密算法以及各种加密算法,及其考验技术性。

适用场景:网页完全静态化,并且你要抓取的数据在网页首次加载完成就加载出来了。涉及登录或者权限操作的类似页面未做任何帐号加密或只做简单加密的。

当然,如果该网页你抓取的数据,是通过接口获得的json,那么,你就更幸福的,直接抓取json页面即可。

对于有登录的页面,我们如何拿到他的登录页之后的源码呢?

首先我要介绍一下,对于session保存帐号信息的情况下,服务器是如何确定该用户身份的。

首先,用户登录成功后,服务器端会将用户的当前会话信息保存到session中,每一个session有一个唯一标志sessionId。则用户访问这个页面,session被创建后,就会接收到服务器端传回的sessionId,并将其保存到cookie中,因此,我们可以用chrome浏览器打开检查项,查看当前页面的jsessionId。下次用户访问需要登录的页面时,用户发送的请求头会附上这个sessionId,服务器端通过这个sessionId就可以确定用户的身份。

这里,我搭建了一个简单的jsp登录页面,登录后的帐号信息保存在服务器端session中。

思路:1,登录。2,登录成功后获得cookie。3,将cookie放到请求头中,向登录页发送请求。

附上java版本的代码及python

java版:

一、Fiddler抓取HTTPS的原理

Fiddler可以通过伪造CA证书来欺骗浏览器和服务器。在浏览器面前,Fiddler伪装成一个HTTPS服务器。而在真正的HTTPS服务器面前,Fiddler又装成浏览器,从而实现解密HTTPS数据包的目的,抓取HTTPS的网络数据。

二、Fiddler抓取HTTPS的设置

1、点击菜单栏Tools –>Fiddler Options –>  HTTPS,进行抓取HTTPS的设置,允许安装证书:

一般来说抓包都是用软件,抓包软件是抓去进,出设备的数据包。所以如果数据没有流动那就抓不到。不知道你想要查看些什么内容,如果你想看数据服务器与其他设备都传递些什么数据包那就得把数据服务器和另一个设备连在一起,让他们处于信息交互的状态,这样才能抓包。

比较有名的抓包工具有sniffer,etherpeak,wireshake(可能拼写有误,百度会为你纠正^_^)

而个人pc抓包一般都是抓取网卡上的数据,一般抓包软件会让你选择抓哪个网卡的数据,那就选你连接服务器和另一设备的那张网卡就行了。

抓取的包是所有通过网卡的数据,所以准确的筛选就要看你自己的知识够不够了。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/250704.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存