写爬虫时遇到的问题有关js

2012-12-20 14:59:36 +08:00
 jyjmrlk
使用python的urllib2但是页面中的链接是通过js生成的,所以获取不到,应该如何做呢?
看到类似问题:http://stackoverflow.com/questions/4720342/python-processing-javascript-with-urllib2
3990 次点击
所在节点    问与答
11 条回复
shellex
2012-12-20 15:15:16 +08:00
我之前写了一个东西也遇到这个问题,很多东西是js生成的。考虑到js的执行还依赖页面环境,折腾这些好麻烦。

我想要一个糙快猛的方法,于是考察了 http://seleniumhq.org/ 这种东西,不过觉得还是麻烦,我的最终解决方案是写了一个浏览器插件,然后让浏览器解决js生成页面的问题。当然,代价是运行这样的程序需要一个图形环境。。。

我倒是希望有一个不依赖图形环境的库,给一个url,过一会儿,糙快猛地把解析好的页面递过来。
shellex
2012-12-20 15:16:24 +08:00
补充一下,stackoverflow上的回答应该是正道,只不过实现起来麻烦...
jyjmrlk
2012-12-20 15:18:17 +08:00
@shellex 非常同意,而至于浏览器插件我是毫无经验。不知道有什么建议没?Chrome OR Firefox
binux
2012-12-20 15:19:25 +08:00
@shellex 所以你需要的是 code.google.com/p/phantomjs/
clowwindy
2012-12-20 15:23:56 +08:00
用过 pyqt,selenium,jsdom。它们都太耗 CPU 了,解析少量的网页还可以,上百万的话就无力了。如果你做的不是通用爬虫,而是垂直爬虫,最好手工分析页面,找到 json 地址,提取结构化数据。
shellex
2012-12-20 15:28:08 +08:00
@binux 对对,这个真赞,要的就是这个。不过这个只说不依赖webkit实现,但是是否依赖X没说。
shellex
2012-12-20 15:29:14 +08:00
@binux 噢我看到了,「Pure headless (no X11) on Linux」大赞
jyjmrlk
2012-12-20 15:39:10 +08:00
@binux 看上去很不错
thursday
2013-01-01 19:06:16 +08:00
@binux phantomjs 在gbk 页面处理的时候乱码有遇到过嘛?
workaholic
2013-03-21 15:11:38 +08:00
可以看看我的站 专注爬虫技术研究 v2sk.com
zxmqwer
2015-03-04 21:49:35 +08:00
@workaholic 这个网址打不开了啊 有个问题想请教下您。

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

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

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

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

© 2021 V2EX