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

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

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

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

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