有没有通用方法来查看网页是如何获取数据库数据的

abcmn1234 2018-05-27 10:09:38
web技术实在太复杂强大了,,,

想请教一下,到底有没有通用方法来查看网页是如何获取数据库数据的,我以前碰到类似问题,都是最终在某个js文件中,看到GET字样,最后可以拼凑出一个http网址链接,然后,我在编程中,直接访问这个网址,就能拿到数据了。但是,这个过程,基本是我连蒙带猜再加上求解大牛们搞出来的,而不是通过某种通用的方法论来找出来的。

现在,我用类似的方法,想去看
https://www.feixiaohao.com
里面的行情数据。 但是,试了一个周末,还是没有找到到底是怎么出来的数据。请问有没有什么通用方法来查看网页是如何获取数据库数据的?谢谢。
...全文
4731 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qhf503 2018-05-29
  • 打赏
  • 举报
回复
这个是不可能的,你只能看你发送了什么,服务器回应了什么,根本就不可能知道服务器是如何获取数据库数据的
qhf503 2018-05-29
  • 打赏
  • 举报
回复
呵呵,那是不可能的
帅凯凯 2018-05-29
  • 打赏
  • 举报
回复
没有登陆验证,自己简单爬下呗
abcmn1234 2018-05-29
  • 打赏
  • 举报
回复
引用 9 楼 superwfei 的回复:
如果采集数据,那么需要区分数据来源,来源分两种,一种是服务器端加载,另一种是异步加载(通过js)
如果是服务器端加载,你只能获取完整html,然后自己去分析提取
如果是异步加载,你可以直接通过浏览器的网络页看到请求的路径和返回的数据(多数是xhr直接返回json数据,也有返回html或者js代码的)
然后,分析各个数据里的值是否是实际显示的值,因为有很多值会经过运算后变成其他格式再显示
最后,找到相应的请求后,还需要看对方是否有防采集设置,比如referrer啦、会话啦、cookie继承啦


谢谢,我下意识的感觉,这个是由js脚本异步加载的。被您问了一下后,我还真的觉得,这个是在服务端生成的。因为,我看源代码里面的数据直接就有了。不知道这是否正确的判断方法? 谢谢。
文盲老顾 2018-05-29
  • 打赏
  • 举报
回复
引用 楼主 abcmn1234 的回复:
现在,我用类似的方法,想去看 https://www.feixiaohao.com 里面的行情数据。
你给的这个网站地址,数据是在服务器端直接写到页面里的,没有异步请求,你自己分析提取吧
abcmn1234 2018-05-29
  • 打赏
  • 举报
回复
我试着重新详细的描述一下,感觉就是找不到到底是怎么获取数据的,非常奇怪,当然,问题肯定是在我这里,哪里做的不太对。

在访问了 https://www.feixiaohao.com/ 后,然后在jquery-2.1.1.js文件的一开始设置一个断点,如下图


然后,按F5进行页面刷新,就断在了刚刚设置的断点了。然后,单步调试(step into、step out)一直执行到jquery文件的最后,再按step into,如下图


上图中,按了step into后,就断在了common-1.1.js?v=1.43文件的一开头,此时,浏览器页面已经灰色显示,而且,行情数据已经发生了更新!!!,如下图。


abcmn1234 2018-05-29
  • 打赏
  • 举报
回复
刚刚误点了递交回复。发现无法编辑原贴,只能继续回复。



所以,行情数据的更新,我觉得,就发生在 jquery.js 和common.js之间,可是,到底是什么触发的呢?死活想不明白。

请问,我还可以在哪里尝试一下吗?多谢了。
文盲老顾 2018-05-29
  • 打赏
  • 举报
回复
如果采集数据,那么需要区分数据来源,来源分两种,一种是服务器端加载,另一种是异步加载(通过js) 如果是服务器端加载,你只能获取完整html,然后自己去分析提取 如果是异步加载,你可以直接通过浏览器的网络页看到请求的路径和返回的数据(多数是xhr直接返回json数据,也有返回html或者js代码的) 然后,分析各个数据里的值是否是实际显示的值,因为有很多值会经过运算后变成其他格式再显示 最后,找到相应的请求后,还需要看对方是否有防采集设置,比如referrer啦、会话啦、cookie继承啦
abcmn1234 2018-05-29
  • 打赏
  • 举报
回复
引用 6 楼 qhf503 的回复:
这个是不可能的,你只能看你发送了什么,服务器回应了什么,根本就不可能知道服务器是如何获取数据库数据的
可能我说的还不清楚,我想知道的,就是浏览器端是发送了什么,才从服务器得到行情数据的回应。 而不是在服务器端的数据库的交互。
abcmn1234 2018-05-29
  • 打赏
  • 举报
回复
引用 4 楼 Free_Wind22 的回复:
也有可能用了websocket
在common.js文件中,是有socket相关变量,但是,把几个js文件都搜索了一下,没有搜到websocket啊
2018-05-28
  • 打赏
  • 举报
回复
也有可能用了websocket
abcmn1234 2018-05-28
  • 打赏
  • 举报
回复
我是在在所有.js文件的一开始设置了一个断点,然后重新访问这个页面,首先是jquery.js文件一开始被断住,继续往下,然后,我发现整个页面被刷新了,包括行情数据也都发生了变化,再接下来,是common.js文件一开始被断住了,然后一直往后到所有执行完毕,页面在也没有发生变化。 这样,看上去,是在jquery.js和common.js直接发生了什么,并使得页面进行了刷新更新,请问,这种情况,接下来应该看哪里,以找到到底数据是怎么获取得到的,谢谢。
abcmn1234 2018-05-28
  • 打赏
  • 举报
回复
引用 1 楼 Free_Wind22 的回复:
Chrome游览器F12切换到network标签,可以看到所有请求
我试过这样,之前简单的情况也都是这样尝试出来的,但是,这次比较复杂,没能看出来
2018-05-28
  • 打赏
  • 举报
回复
Chrome游览器F12切换到network标签,可以看到所有请求

87,888

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧