这种情况下应该用 Python 哪个框架?

2016-06-02 09:27:13 +08:00
 ifconfig

公司目前已有一个 PHP 项目,但是有些场景需要用到数据分析和爬虫,所以打算用 Python 的 Scrapy 做这一块。

目前想到的办法是:通过 PHP 调用 Python 一些挖掘和分析的服务,然后返回数据给 PHP ,写进数据库。

由于对 Python 这块领域是小白, Python 应该怎样封装成服务与 PHP 通信,用 Python 哪些框架封装成服务,都不太了解,忘各位给给意见,谢谢。

4066 次点击
所在节点    Python
21 条回复
cc7756789
2016-06-02 09:38:18 +08:00
不直接用 Python 写进数据库?还要返给 PHP ?
ifconfig
2016-06-02 09:40:10 +08:00
@cc7756789 PHP 和 Python 都行,不是重点,主要想用 Python 封装成服务,而不是数据层。
jinxueliu
2016-06-02 09:41:57 +08:00
可以用 Python 做成 HTTP 服务,然后 PHP 来调用
will0404
2016-06-02 10:09:18 +08:00
如果是 http 通讯, python 这端起个简单的 web 服务就可以了,比如用 flask
ifconfig
2016-06-02 10:16:39 +08:00
@will0404 你的意思是在 flask 上搭个 Scrapy ,然后把它做成服务,供 PHP 调用吗? Python 刚学,下周就要用 flask ,不知能不能应付得来,或者有没有更轻量的框架介绍?
9hills
2016-06-02 10:17:40 +08:00
@ifconfig flask 已经很轻量了,十几行就是一个 webserver
JhZ7z587cYROBgVQ
2016-06-02 10:21:45 +08:00
要不用 thriftpy 写成 thrift 服务供调用方使用? php 应该也可以用 thrift 协议的
ifconfig
2016-06-02 10:27:17 +08:00
@will0404 @9hills @jason0916 谢谢各位,回去恶补下这些知识
pierre1994
2016-06-02 11:16:41 +08:00
django 和 rest-framework ,弄成 rest api 应该可以
peter999
2016-06-02 11:19:12 +08:00
Scrapy 太恶心了,没法整合 gevent ,建议 django+requests
Delbert
2016-06-02 12:19:52 +08:00
@9hills web.py 才是最轻量的吧?虽然作者已经挂了。 Rip
strider0505
2016-06-02 14:25:46 +08:00
flask
taozhijiangscu
2016-06-02 15:15:40 +08:00
哈哈, Tornado 妥妥的。
https://r.taozj.org
orange
2016-06-02 17:05:57 +08:00
flask
hwsdien
2016-06-02 17:08:32 +08:00
上 thrift 用 rpc 接口
YUX
2016-06-02 17:11:06 +08:00
requests+flask 正解
但我觉得 python 爬完写到数据库 PHP 直接去数据库找不是更好?
practicer
2016-06-02 17:16:04 +08:00
@cc7756789 我也觉得直接存数据库, php 读库最实用。另外想知道为什么必须用 python 来做爬虫, PHP 不是一样可以爬嘛?换 python scrapy 不会有成本吗?
ifconfig
2016-06-02 17:22:04 +08:00
@YUX @practicer 之前用 PHP 的 simple html dom 库爬过,有些网站通过 ajax 的话加载爬不出一些数据,正好 CTO 闲的蛋疼自己学 Python 然后说可以解决这个问题,就交给我开发,麻蛋,手上一大堆工作,他倒是好
Owenjia
2016-06-02 23:41:10 +08:00
@Delbert 最轻量的么? Pycnic 貌似 300 行不到。
aljun
2016-06-03 02:18:24 +08:00
有时间的话⋯⋯可以自己基于 wsgi 实现个框架满足要求⋯⋯


这里有个我写的轻量级的 API server⋯⋯基于 gevent 的 wsgi

http://jolla.readthedocs.io/zh/latest/

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/282880

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX