kelos
V2EX  ›  问与答

想写个爬虫程序,用什么技术好,谁能帮我呢

  •  
  •   kelos · Feb 22, 2016 · 8956 views
    This topic created in 3907 days ago, the information mentioned may be changed or developed.
    如题,各种我要用的网站总想爬点东西下来,方便看。

    请指教。
    46 replies  •  2016-02-23 17:49:25 +08:00
    Andy1999
    Andy1999
    Feb 22, 2016 via iPhone
    1
    python3 吧
    em70
    em70
    Feb 22, 2016
    2
    当然 python 啊,有什么可说的
    kelos
    kelos
    OP
    Feb 22, 2016
    3
    @em70 有没有想过为什么大家都不考虑 java 呢
    random2case
    random2case
    Feb 22, 2016
    4
    scala 可以吗?不喜勿喷~~~
    ahonn
    ahonn
    Feb 22, 2016 via Android
    5
    Python Scrapy
    em70
    em70
    Feb 22, 2016
    6
    @kelos 大多数个人需求的爬虫需要的是灵活快捷,不需要那么高效健壮的程序,python10 行代码就能搞定的事情 java 要写 100 行,没有优势. 但如果是百度,谷歌那种企业级爬虫,用 java 和 C 会更有优势
    ericls
    ericls
    Feb 22, 2016 via iPhone
    7
    python asyncio
    lengjingxu
    lengjingxu
    Feb 22, 2016 via Android
    8
    得看具体要爬多少量的东西以及内容格式还有你会什么计算机语言吧
    vitovan
    vitovan
    Feb 22, 2016
    9
    Python 的包很多,坑很少,个人感觉。
    刚做了个: https://v2ex.com/t/258108
    vietor
    vietor
    Feb 22, 2016 via Android
    10
    @random2case Python 最简单,容易部署。 scala 可以,用 sbt-assembly 打成一个包也便于部署,但加上 JDK 整体太大了,不值得。
    cxbig
    cxbig
    Feb 22, 2016
    11
    条件不复杂我一般用 ruby on rails + nokogiri
    shulen
    shulen
    Feb 22, 2016
    12
    这个应该要看你会什么技术
    bobbychen
    bobbychen
    Feb 22, 2016
    13
    语言都不是问题~~~看你自己熟悉什么吧
    jugelizi
    jugelizi
    Feb 22, 2016
    14
    人生苦短 我用 Python
    wizardoz
    wizardoz
    Feb 22, 2016
    15
    scrapy 不解释
    cxshun
    cxshun
    Feb 22, 2016
    16
    爬虫肯定 python 啊。

    不考虑 java 是因为如果你要解析 html ,要引用 xpath ,自带的 dom 库是不大好用的,要引入 jdom , jdom 又要另外的东西支持,反正弄来弄去一大堆。这种工具类的东西用脚本语言写是最合适的。
    fy
    fy
    Feb 22, 2016
    17
    就 python 啊, http 库用 requests , HTML 复杂用 xpath ,简单直接用 re 正则模块,加个简单的面向过程的多线程,就上路了。
    scrapy ?牛刀杀鸡
    smalltalk
    smalltalk
    Feb 22, 2016
    18
    @cxshun maven+jsoup=搞定
    java 的优势就是对于任何一个新库,只要观其大略,就可以快速上手。学 python 要记 api ,太痛苦了了。
    tabris17
    tabris17
    Feb 22, 2016
    19
    Phatomjs ,除了效率差点,功能没话说
    IFoon
    IFoon
    Feb 22, 2016
    20
    datapipeline
    datapipeline
    Feb 22, 2016
    21
    短平快: scrapy 加 mongodb
    http://scrapy.org/ 可以先看看文档
    wlsnx
    wlsnx
    Feb 22, 2016
    22
    scrapy 好用
    wusuopuBUPT
    wusuopuBUPT
    Feb 22, 2016
    23
    scrapy 的一些例子,上个月刚用 scrapy 爬取了某直播站点的数据。
    https://github.com/wusuopubupt/scrapy-examples
    wusuopuBUPT
    wusuopuBUPT
    Feb 22, 2016
    24
    从 geekan 的项目 fork 过来的: https://github.com/geekan/scrapy-examples
    CharlesL
    CharlesL
    Feb 22, 2016
    25
    Java 的话 webmagic 挺好用,简单,支持分布式。
    zacard
    zacard
    Feb 22, 2016
    26
    java 的话, jsoup ,也可以简单高效~
    luban
    luban
    Feb 22, 2016
    27
    只会 java ,简单的 jsoup 解析下 html 就好,复杂的 webmagic ,基本能满足所有需求,灵活性也非常高
    slixurd
    slixurd
    Feb 22, 2016
    28
    我也觉得拿 Java 写更方便,一个 JSoup ,简单爬虫的话什么框架都不用,自己写多线程,任务队列,简单轻松。最主要是对中文编码的处理实在太方便了,找到 HTML 的 charset ,然后反射对应的 Charset 就完事。
    Python2 的中文。。。。。
    slideclick
    slideclick
    Feb 22, 2016
    29
    没写过,但是建议用 node,js 。第一你要爬虫肯定要能看懂页面里的 js 代码,第二其实你不用写爬虫,你可以用 chrome 扩展用 js 写。既然你需要懂 js 何必学习第二语言比如 python
    cxshun
    cxshun
    Feb 22, 2016
    30
    @smalltalk 那倒也是,虽然我是搞 java 的,但我个人感觉 python 写这些会方便很多。只是 python2 和 3 之间的兼容问题确实坑爹。
    smalltalk
    smalltalk
    Feb 22, 2016
    31
    @cxshun 就你的体会,方便在那里呢?是 api 的问题,还是语言问题,语言问题 kotlin 能补足吗?
    thursday
    thursday
    Feb 22, 2016
    32
    nodejs 优势也很大。 能直接运行页面 js 。 dom 很自然处理。天然异步处理能力强。
    jedyu
    jedyu
    Feb 22, 2016
    33
    安利一下 pyspider
    vaynewang
    vaynewang
    Feb 22, 2016
    34
    javascript
    woai110120130
    woai110120130
    Feb 22, 2016
    35
    写了个纯c的
    cxshun
    cxshun
    Feb 22, 2016
    36
    @smalltalk 更多的应该是 api 的问题, kotlin 这个我倒没去试过哈,有时间去试试。
    其实算是有点偏向吧,写这种小工具总是喜欢用 python 来。虽然 java 自己更熟,但 python 写起来感觉会爽一点哈。
    sohoer
    sohoer
    Feb 22, 2016
    37
    twlsoft
    twlsoft
    Feb 22, 2016
    38
    如果是用 node.js 的话也可以吧?
    smalltalk
    smalltalk
    Feb 22, 2016
    39
    @cxshun 原来我测试 rest api 的时候,用 python ,后来改 dart 了( unicode 问题对迁移贡献很大)。小工具,一次性的东西,基本都用它。主要是有自动完成功能,编写、运行循环非常快速, api 也挺好。
    microchang
    microchang
    Feb 23, 2016
    40
    @thursday 直接运行页面 js 有点过了吧。。。
    wanliqun
    wanliqun
    Feb 23, 2016
    41
    @sohoer 给个验证码体验一下?
    slideclick
    slideclick
    Feb 23, 2016
    42
    @microchang Phatomjs
    microchang
    microchang
    Feb 23, 2016
    43
    @slideclick 这个我也玩过,不过他说的是 node 。毕竟客户端和服务端的运行环境还是不同的。
    thursday
    thursday
    Feb 23, 2016
    44
    @microchang 我的意思是部分复杂代码可以匹配出来运行,直接拿到 js 里面的数据。并不是运行全部 js 。哪个是 Phatomjs
    microchang
    microchang
    Feb 23, 2016
    45
    @thursday 感觉有点悬,虽然都是 js 虽然都是 v8 ,可能也只有部分纯逻辑不涉及到网络交互的代码可以直接运行。但是这部分代码如何筛选出来还是得人工干预,算下来得不偿失。
    slideclick
    slideclick
    Feb 23, 2016
    46
    @microchang 我和你一样,比较怀疑在服务器端可以解析抓下来的 js 的可能性。有人真搞过么?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2976 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 75ms · UTC 10:55 · PVG 18:55 · LAX 02:55 · JFK 05:55
    ♥ Do have faith in what you're doing.