1
bdbai 2016-08-03 20:00:39 +08:00 via Android 1
你要获取内荣啊,基本上两个思路,一个 Selenium 模拟,另一个分析产生的网络请求然后手动模拟。前者简单,后者效率高。
|
2
lululau 2016-08-03 20:14:02 +08:00 via iPhone 1
phantomjs
|
3
mornlight 2016-08-03 21:07:02 +08:00 1
不一致不是在反爬虫,是异步加载导致的,右键查看页面源码的时候可能没包含 JS 插进去的内容,比如 Chrome 查看源码会重新页面请求一次,你应该用审查元素来看。
异步加载的内容需要通过模拟接口的请求来获取内容。 |
4
cszhiyue 2016-08-03 22:11:46 +08:00 1
phantomjs 或者 分析 ajax 调用
|
5
isbase 2016-08-03 22:45:55 +08:00 via Android 1
推荐 Nightmare
|
6
franklinyu 2016-08-04 00:38:19 +08:00 1
@mornlight JavaScript 插進去的不算「源碼」吧?爬蟲也不會渲染 JavaScript 部分吧?
|
7
xiaoshangmin 2016-08-04 00:43:19 +08:00 via iPhone 1
netnetwork 仔细分析其中的 ajax
|
8
abxialiang 2016-08-04 06:19:54 +08:00 1
一个是模拟浏览器实现全部加载后再解析
二个是在浏览器里抓包看下,你要的内容是怎么请求到的,直接仿照这个请求就可以 往往第二个高效直接,当不同网站分析难度不同 |
9
billion 2016-08-04 07:34:25 +08:00 1
这种情况是因为网页动态加载实现的。
我不建议使用 Selenium ,因为速度太慢。我建议使用 Chrome 的检查功能来帮助你获取内容。 我在极客学院有一课专门讲了这种情况的处理方式,请看: http://www.jikexueyuan.com/course/1713.html |
10
slysly759 2016-08-05 13:55:26 +08:00 1
@billion 活捉老师一枚哈哈哈哈~
另外,题主是没有弄明白 js 调用在 html 页面顶多写一个 script 要的内容是动态展现的 比如我加一个 table 然后用 js 调取数据填入,这就是爬虫眼中所谓的 ajax 啦 很多时候是前端基础太差 不怪别人反扒~ |
11
rocuku 2016-08-06 07:33:51 +08:00 via iPhone
推荐 firefox 的 httpfox ,抓包看看前台显示的东西是通过哪个请求来的
|