问一个爬虫的问题。。假若遇到浏览器中显示的内容,和通过右键看到的网页源码不一样的情况用 Python 如何爬取内容呢??

2016-08-03 17:54:26 +08:00
 yanwen
RT

遇到下面连接这样的情况
http://bbs.csdn.net/topics/390746446?page=1

怎么获取内荣呢?

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/296899

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX