首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
宝塔
V2EX  ›  问与答

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

  •  
  •   jyjmrlk · 2012-12-20 14:59:36 +08:00 · 3001 次点击
    这是一个创建于 2525 天前的主题,其中的信息可能已经有所发展或是发生改变。
    使用python的urllib2但是页面中的链接是通过js生成的,所以获取不到,应该如何做呢?
    看到类似问题:http://stackoverflow.com/questions/4720342/python-processing-javascript-with-urllib2
    11 回复  |  直到 2015-03-04 21:49:35 +08:00
        1
    shellex   2012-12-20 15:15:16 +08:00   ♥ 1
    我之前写了一个东西也遇到这个问题,很多东西是js生成的。考虑到js的执行还依赖页面环境,折腾这些好麻烦。

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

    我倒是希望有一个不依赖图形环境的库,给一个url,过一会儿,糙快猛地把解析好的页面递过来。
        2
    shellex   2012-12-20 15:16:24 +08:00
    补充一下,stackoverflow上的回答应该是正道,只不过实现起来麻烦...
        3
    jyjmrlk   2012-12-20 15:18:17 +08:00
    @shellex 非常同意,而至于浏览器插件我是毫无经验。不知道有什么建议没?Chrome OR Firefox
        4
    binux   2012-12-20 15:19:25 +08:00   ♥ 3
    @shellex 所以你需要的是 code.google.com/p/phantomjs/
        5
    clowwindy   2012-12-20 15:23:56 +08:00
    用过 pyqt,selenium,jsdom。它们都太耗 CPU 了,解析少量的网页还可以,上百万的话就无力了。如果你做的不是通用爬虫,而是垂直爬虫,最好手工分析页面,找到 json 地址,提取结构化数据。
        6
    shellex   2012-12-20 15:28:08 +08:00
    @binux 对对,这个真赞,要的就是这个。不过这个只说不依赖webkit实现,但是是否依赖X没说。
        7
    shellex   2012-12-20 15:29:14 +08:00
    @binux 噢我看到了,「Pure headless (no X11) on Linux」大赞
        8
    jyjmrlk   2012-12-20 15:39:10 +08:00
    @binux 看上去很不错
        9
    thursday   2013-01-01 19:06:16 +08:00
    @binux phantomjs 在gbk 页面处理的时候乱码有遇到过嘛?
        10
    workaholic   2013-03-21 15:11:38 +08:00   ♥ 1
    可以看看我的站 专注爬虫技术研究 v2sk.com
        11
    zxmqwer   2015-03-04 21:49:35 +08:00
    @workaholic 这个网址打不开了啊 有个问题想请教下您。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2983 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 11:23 · PVG 19:23 · LAX 03:23 · JFK 06:23
    ♥ Do have faith in what you're doing.