大家说说 Python 和 Java 混合开发的一些方法吧 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
backfrw
V2EX    问与答

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

  •  
  •   backfrw 2017-04-13 23:18:04 +08:00 5016 次点击
    这是一个创建于 3104 天前的主题,其中的信息可能已经有所发展或是发生改变。
    自黑如我,毕业都给自己挖坑,前段时间交了毕业设计的开题报告,本来打算就 java 写个网站,老师说不行,太简单,改报告。。。
    用 python 写爬虫,通过关键字爬取信息,存数据库,用 java 的 SSM 框架写个后台,从数据库获得关键字相关的信息展示在页面上,之前想的是关键字通过 java 存数据库, python 从数据库拿关键字爬网站,算是通过开题报告了

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

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

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

    两个服务都是持续在线,利用数据库和队列解耦
    incompatible
        14
    incompatible  
       2017-04-14 01:11:38 +08:00 via iPhone   1
    @backfrw Python 轮询数据库里的关键词表就行了。别做 RPC , RPC 根本就不是干这个用的。
    backfrw
        15
    backfrw  
    OP
       2017-04-14 01:18:00 +08:00
    @incompatible 好的,谢谢大佬建议,似乎逃过一坑
    backfrw
        16
    backfrw  
    OP
       2017-04-14 01:19:22 +08:00
    @mhycy 我下去研究下, 谢谢大佬建议
    Mogugugugu
        17
    Mogugugugu  
       2017-04-14 01:35:42 +08:00   1
    最原始的办法就是 数据库 里面加一个标志位,标志爬虫是否爬取完成, Java 每次请求数据库 先判断标志位是否是完成,如果是前取值展示。反正这俩都要读取数据库的,这是最原始的办法了。
    Tneciv
        18
    Tneciv  
       2017-04-14 01:44:30 +08:00 via Android   1
    上 mq 啊
    fy
        19
    fy  
       2017-04-14 01:48:44 +08:00   1
    哪有那么多高科技啊?轮询不就完了……
    ChasYuan
        20
    ChasYuan  
       2017-04-14 09:22:58 +08:00
    那看来我专业毕设要求比较水了。仰望楼主。
    gcli
        21
    gcli  
       2017-04-14 09:47:26 +08:00
    果断上 mq
    bk201
        22
    bk201  
       2017-04-14 10:33:53 +08:00
    建议上 storm ,瞬间开题报告高大上
    backfrw
        23
    backfrw  
    OP
       2017-04-14 10:51:00 +08:00
    @Mogugugugu 大佬你这个办法我喜欢,看上去很简单,谢谢啦
    backfrw
        24
    backfrw  
    OP
       2017-04-14 10:51:32 +08:00
    @Tneciv 原谅小白没有用过,回头看看,谢谢啦
    backfrw
        25
    backfrw  
    OP
       2017-04-14 11:00:04 +08:00
    @bk201 没听过,/(ㄒoㄒ)/~~我回头看看,谢谢
    backfrw
        26
    backfrw  
    OP
       2017-04-14 11:01:52 +08:00
    @fy 谢谢大佬,可以的
    backfrw
        27
    backfrw  
    OP
       2017-04-14 11:18:51 +08:00
    @ChasYuan 哪里哪里,只是自己坑自己,都快坑高潮了
    wsbnd9
        28
    wsbnd9  
       2017-04-14 14:51:51 +08:00
    两者之间用 Rpc 调用呗
    ryV60s
        29
    ryV60s  
       2017-04-14 14:58:35 +08:00
    Java 开个( http/tcp)接口, python 跑完就访问下。
    lianxiaoyi
        30
    lianxiaoyi  
       2017-04-14 17:32:39 +08:00
    http 接口啊。。谁跑完告诉另一放就行了。。。。不过如果搞 socket 比较高大上
    backfrw
        31
    backfrw  
    OP
       2017-04-14 19:46:57 +08:00
    @ryV60s @lianxiaoyi 谢谢建议,大家给了这么多建议,已经想通,应该可以解决了,谢谢
    wanjun
        32
    wanjun  
       2017-04-14 21:33:13 +08:00 via iPad
    我的方式: cython 打包为 so 文件, jni 调用
    introom
        33
    introom  
       2017-04-17 02:00:58 +08:00 via Android
    zmq,你还想多说什么,,,
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     910 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 18:52 PVG 02:52 LAX 11:52 JFK 14:52
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86