Karmenzind/fp-server

我希望大佬能够写一篇关于这个项目大致思路,或者关于tornado于scrapy进行交互的文章

Closed this issue · 5 comments

在网上面找了一些关于scrapy嵌入到web的方式,但是都有些不太满意,而且主要看到了Django和scrapy,或者是通过scrapyd来进行操控。

这个项目源码我也看了一些,但是异步的部分是在是不怎么懂,特别是在tornado中get,post方法那些地方,没有找到大佬究竟做了什么事,那些属性或者方法是在什么地方写进去的。
image

确实很多不理解的地方,我学的还是太浅了

scrapy嵌入到web,参考了https://www.tornadoweb.org/en/stable/twisted.html ,结合croshet这个包

特别是在tornado中get,post方法那些地方,没有找到大佬究竟做了什么事,那些属性或者方法是在什么地方写进去的

你可能需要补一下Py基础,这里只是利用getattr做了一层封装。许多web框架里都有类似的dispatch方法。


文章什么的,我时间少,而且这个项目也没什么人用,就先不写了:smile: 谢谢关注

感谢大佬的回复,我确实应该补一下python的基础了,在twisted和croshet这两个库确实还没有看,之后我会仔细看看两个怎么用。

不过我还是有个地方不是很明白,希望能够解惑。

我不知道在WebHandler中_post_,get_等等这些方法是在什么地方设置的,继承RequestHandler应该是没有的,难道是调用了什么特别的方法才有的。我只在里面找到了创建的协程get,post,head等等这些方法,然后这些方法会调用process去调用相应的_get,post。但是我就是找不到_get_,_post_这些方法在什么地方。

是crochet,打错了。

Tornado默认会调用get,这里的_get_是要通过继承WebHandler自己实现的,这样Tornado调用get时,就会运行process方法,执行https://github.com/Karmenzind/fp-server/blob/master/src/core/web.py#L169 里的前后逻辑(prepare和complete)。
但我写接口时并没有用它。

Tornado和Scrapy的官方文档是很好的教程。《Learning Scrapy》这本书还可以,后两章讲了涉及到的Twisted知识。
没有特别需要的话,没必要深入学Twisted。

非常感谢您的讲解,而且这本书我粗略的看了一下目录,应该可以学到很多我在网上面不容易找到的知识,再次表示感谢。我又阅读了一遍大佬的代码,只能感慨大佬的功力深不可测,也让我知道自己的知识有多么浅薄。

WebHandler这个我大概懂了,这只是一个父类,并不是我们真正的逻辑所在,通过子类的继承来重新实现get,post等功能。

另外在这里留下《Learning Scrapy》中文版的网盘地址,如果有人需要可以直接下载:https://pan.baidu.com/s/1qi7mtPh5FoHCepJLlojvkg

太客气了 加油
书籍是有版权的 最好不要传播下载链接