新手请教:如何用 python 请求动态网页,使其得到的内容和浏览器请求一样。

2016-05-31 15:41:30 +08:00
 twilight
我试了 urllib 的 urlopen 和 requests 的 get ,得到的都只是静态的内容,网页里的表格内容没有得到。
5253 次点击
所在节点    Python
13 条回复
Yc1992
2016-05-31 15:44:45 +08:00
抓包分析请求
wizardoz
2016-05-31 15:46:27 +08:00
表格里面的内容有可能是 ajax 或者 websocket 获取的,并不是在请求页面的时候就有。
Patrick95
2016-05-31 15:47:56 +08:00
wizardoz
2016-05-31 15:47:58 +08:00
如果是 ajax 那好办,用浏览器的 F12 看看它请求了什么东西就可以了。
如果是 websocket 就难办了。
mrwangrj
2016-05-31 16:00:05 +08:00
phantomjs
SlipStupig
2016-05-31 16:10:26 +08:00
@wizardoz iframe ajax 表单字段随机化,有没办法不开浏览器能直接跑通
twilight
2016-05-31 16:12:25 +08:00
感谢各位热心回复。

搜了搜,好像有用 PythonWebKit 或 PyQtWebKit 来做的。
wujunze
2016-05-31 16:49:17 +08:00
phantomjs +1
mingyuejingque
2016-05-31 17:24:13 +08:00
phantomjs + 2 , 配合 casperjs 可以搞很多小动作,嘿嘿嘿
tkpc
2016-05-31 17:32:57 +08:00
system("google-chrome")
jiezhi
2016-05-31 17:35:16 +08:00
selenium + phantomjs 呢
xinali
2016-05-31 17:45:28 +08:00
有两种思路,一种是如果你想分析 js 处理后的网页源码可以使用 selenium+phantomjs ,但是有坑在携带 cookie ,修改 header 等方面。一种是用 requests 获取到网页未经 js 处理的代码,之后分析网页的 js 处理情况并结合 nodejs 对网页进行二次加工,这样而且可以极大的加快你的处理速度,具体的可以看我写的这个 http://xinali.github.io/2016/05/22/python%E5%A4%84%E7%90%86js%E7%BD%91%E9%A1%B5/
ila
2016-05-31 19:58:15 +08:00
@Patrick95 赞同+1
官方更新后百度得到的资料还是旧的

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

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

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

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

© 2021 V2EX