请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

为什么要使用selenium

①从之后的使用当中,我发现selenium的作用只是实现对浏览器的操作并获取cookie

②为什么说selenium可以解决数据通过js动态加载这些问题呢(基于本节课中爬虫与反爬虫对抗发展介绍如下)?

https://img1.sycdn.imooc.com//szimg/5cc181bd000147d615240236.jpg

③之前提到了response分析的是页面的html源码,那为什么我在知乎、伯乐在线这些页面的css并没有出现因为js动态加载导致的数据获取失败的问题呢?


正在回答

1回答

  1. selenium最大的好处就是可以模拟人的行为。因为一个网站展示出来的数据很多网站中间执行了大量的js操作和网络请求出来的结果,不适用selenium的话你就需要分析这些js逻辑

  2. 在课程中已经介绍了淘宝的价格展示,其中已经清晰的说明了使用selenium的方便之处

  3. 你的第三个问题我没看看懂,css为什么会受到js动态加载的影响呢?

1 回复 有任何疑惑可以回复我~
  • 提问者 归根结底不优秀 #1
    1.我从代码中找不到使用selenium对response的影响,唯一的联系就是cookie了,但我理解的是cookie只是帮助登录,所以我不知道为什么使用了selenium就可以不分析js逻辑了,虽然说selenium确实登陆了网页,但我们分析的是response得到的html,那么selenium登录的影响究竟在哪里?
    2.我的第三个问题是因为之前课程提到了,response分析的是html源码,而不是我们用浏览器访问网页F12调试出来的那个html,但是人为分析的又是F12下的html,这样可能我们得到的css路径可能是错的。所以我很疑惑我后来为什么没碰到这种情况
    回复 有任何疑惑可以回复我~ 2019-04-26 10:06:44
  • bobby 回复 提问者 归根结底不优秀 #2
    selenium如果只是用于模拟登录的话,那么后期的html分析的话,就需要自己去分析js请求,但是如果后面的url你也是通过selenium获取的话就不用分析js请求了,所以你的后面的问题是,如果是通过request获取的html的话,那么还是需要去分析js请求的,但是selenium的性能比较低,所以很多时候我们模拟登录的时候才会用到selenium,那为什么不分析js去模拟登录而要用selenium模拟登录呢?因为一般的网站会把登录的逻辑做的很复杂,再加上验证码等逻辑的话,想要通过分析js请求去分析难度就很大,所以这种时候会考虑用selenium模拟登录,所以原则就是-能分析js的方式就用分析js的方式完成,因为这种方法性能高, 分析不出来js的时候就用selenium就行了
    回复 有任何疑惑可以回复我~ 2019-04-27 16:25:27
  • 提问者 归根结底不优秀 回复 bobby #3
    所以Request带上了selenium返回的cookie,那么接下来我们分析此Request返回的response,其实就不是html源码,而是js动态加载后的html对吗? 但是有些不需要登录的网站,我们不需要获得cookie,直接Request它的url,这种网站不会有js隐藏数据的可能性吗?如果有js,我们又不能使用selenium登录返回cookie,怎么解决?
    回复 有任何疑惑可以回复我~ 2019-04-28 09:13:06
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信