backfrw
V2EX  ›  问与答

大家说说 Python 和 Java 混合开发的一些方法吧

  •  
  •   backfrw · Apr 13, 2017 · 5985 views
    This topic created in 3499 days ago, the information mentioned may be changed or developed.
    自黑如我,毕业都给自己挖坑,前段时间交了毕业设计的开题报告,本来打算就 java 写个网站,老师说不行,太简单,改报告。。。
    用 python 写爬虫,通过关键字爬取信息,存数据库,用 java 的 SSM 框架写个后台,从数据库获得关键字相关的信息展示在页面上,之前想的是关键字通过 java 存数据库, python 从数据库拿关键字爬网站,算是通过开题报告了

    等真正开始写才觉得不对,主要流程上 java 怎么在 python 结束后运行,就把自己想死机了。。。。

    长期潜水看v2ex学姿势,大佬们能不能讲讲怎么开发比较容易啊?
    目前是 python 小白,正在一边看教程一边写
    33 replies  •  2017-04-17 02:00:58 +08:00
    incompatible
    incompatible
    Apr 13, 2017 via iPhone
    1
    Java 和 Python 各跑各的,共用同一个数据库而已。
    backfrw
    backfrw
    OP
    Apr 13, 2017
    2
    @incompatible 是的是的,但是使用上是用户先设定关键词,放数据库,爬虫根据这个关键词找数据,存数据库,页面再展示,,,, python 小白,不知道怎么 python 怎么能马上知道数据库有关键词可以跑了,和后台不知道什么时候有新数据可以展示了,,,比较懵逼
    yuelang85
    yuelang85
    Apr 13, 2017❤️1
    3
    @backfrw 可以考虑用进程间通信,发个信号量就行了。

    不过我不能理解你为什么要用两门语言
    backfrw
    backfrw
    OP
    Apr 13, 2017
    4
    @yuelang85 恩恩,我去研究下,谢谢
    用两门语言是因为老师不给过开题报告,说 Java 的 ssm 写网站太简单了
    misaka19000
    misaka19000
    Apr 14, 2017 via Android
    5
    RPC 可以吗?
    backfrw
    backfrw
    OP
    Apr 14, 2017
    6
    @misaka19000 没有接触过,得研究下,谢谢建议
    sagaxu
    sagaxu
    Apr 14, 2017
    7
    @backfrw 套个 grpc 或者 thrift 就不简单了?
    luban
    luban
    Apr 14, 2017
    8
    方法使很多,但是为什么要用两门语言, Java 写爬虫不行吗,或者 python 写网站?
    backfrw
    backfrw
    OP
    Apr 14, 2017
    9
    @sagaxu 两个都第一次听说,,就不简单了的意思是很难吗?汪的一声哭出来。。。
    backfrw
    backfrw
    OP
    Apr 14, 2017
    10
    @luban 一开始说 java 用 SSM 写网站,老师不让过,说太简单,然后改来改去就脑子一热坑了自己
    backfrw
    backfrw
    OP
    Apr 14, 2017
    11
    @luban 麻烦大佬随便来两种比较原始的实现方法啊?看了楼上大大们说的 RPC ,要用的话得从头学,感觉会再坑自己一次
    ipconfiger
    ipconfiger
    Apr 14, 2017❤️1
    12
    用 redis
    mhycy
    mhycy
    Apr 14, 2017❤️1
    13
    Java Web 后端在收到爬虫请求后写入到数据库,并发送到队列
    Python 爬虫监听队列,并执行

    两个服务都是持续在线,利用数据库和队列解耦
    incompatible
    incompatible
    Apr 14, 2017 via iPhone❤️1
    14
    @backfrw Python 轮询数据库里的关键词表就行了。别做 RPC , RPC 根本就不是干这个用的。
    backfrw
    backfrw
    OP
    Apr 14, 2017
    15
    @incompatible 好的,谢谢大佬建议,似乎逃过一坑
    backfrw
    backfrw
    OP
    Apr 14, 2017
    16
    @mhycy 我下去研究下, 谢谢大佬建议
    Mogugugugu
    Mogugugugu
    Apr 14, 2017❤️1
    17
    最原始的办法就是 数据库 里面加一个标志位,标志爬虫是否爬取完成, Java 每次请求数据库 先判断标志位是否是完成,如果是前取值展示。反正这俩都要读取数据库的,这是最原始的办法了。
    Tneciv
    Tneciv
    Apr 14, 2017 via Android❤️1
    18
    上 mq 啊
    fy
    fy
    Apr 14, 2017❤️1
    19
    哪有那么多高科技啊?轮询不就完了……
    ChasYuan
    ChasYuan
    Apr 14, 2017
    20
    那看来我专业毕设要求比较水了。仰望楼主。
    gcli
    gcli
    Apr 14, 2017
    21
    果断上 mq
    bk201
    bk201
    Apr 14, 2017
    22
    建议上 storm ,瞬间开题报告高大上
    backfrw
    backfrw
    OP
    Apr 14, 2017
    23
    @Mogugugugu 大佬你这个办法我喜欢,看上去很简单,谢谢啦
    backfrw
    backfrw
    OP
    Apr 14, 2017
    24
    @Tneciv 原谅小白没有用过,回头看看,谢谢啦
    backfrw
    backfrw
    OP
    Apr 14, 2017
    25
    @bk201 没听过,/(ㄒoㄒ)/~~我回头看看,谢谢
    backfrw
    backfrw
    OP
    Apr 14, 2017
    26
    @fy 谢谢大佬,可以的
    backfrw
    backfrw
    OP
    Apr 14, 2017
    27
    @ChasYuan 哪里哪里,只是自己坑自己,都快坑高潮了
    wsbnd9
    wsbnd9
    Apr 14, 2017
    28
    两者之间用 Rpc 调用呗
    ryV60s
    ryV60s
    Apr 14, 2017
    29
    Java 开个( http/tcp)接口, python 跑完就访问下。
    lianxiaoyi
    lianxiaoyi
    Apr 14, 2017
    30
    http 接口啊。。谁跑完告诉另一放就行了。。。。不过如果搞 socket 比较高大上
    backfrw
    backfrw
    OP
    Apr 14, 2017
    31
    @ryV60s @lianxiaoyi 谢谢建议,大家给了这么多建议,已经想通,应该可以解决了,谢谢
    wanjun
    wanjun
    Apr 14, 2017 via iPad
    32
    我的方式: cython 打包为 so 文件, jni 调用
    introom
    introom
    Apr 17, 2017 via Android
    33
    zmq,你还想多说什么,,,
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4328 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 62ms · UTC 08:51 · PVG 16:51 · LAX 00:51 · JFK 03:51
    ♥ Do have faith in what you're doing.