作为练习,我想出了以下Django项目:一个Web应用程序,只需一个按钮就可以从Airbnb中抓取房间数据,还有一个文本区域可以按照排序方式显示检索到的数据。
最好,对于抓取,我想使用Selenium,因为此页面没有API。所以按钮会以某种方式启动浏览器自动化。
所以第一个问题是:是否可以从网络应用程序启动selenium?
此外,我已经有了收集数据的工作脚本,但是我不知道如何在Django项目中使用它:模型,视图,单独的脚本?我最初的想法是按下按钮启动抓取脚本,然后将检索到的与房间相关的数据转储到数据库(例如更新模型的房间属性,如“价格”和“链接”),并在之前提到的文本区域中显示数据。
问题二是:是否可以通过按钮点击在Web应用程序中启动Python脚本,例如通过嵌套在Django模板中?或者是否需要其他技术,例如Javascript?
我知道我的问题很一般,但我也在寻找一般性的建议,而不是现成的代码示例。如果我刚写的内容没有任何意义,我也会接受其他方法。
答案 0 :(得分:0)
最简单的选项是应用程序中的视图函数(即链接到接收GET或POST请求的URL的函数),它执行抓取并通过呈现模板立即返回结果。例如,您可以拥有一个带有表单的起始页面,并且在提交该表单时将创建一个POST请求,该请求将包含视图可用于决定要抓取哪个页面等的详细信息。这不需要Javascript或数据库模型。
如果你还不熟悉Django,请考虑从Flask开始,因为它更容易开始。
答案 1 :(得分:0)
Django遵循MVT,即模型(你编写与数据库相关的东西的部分),View(类似于我们在控制器中所做的逻辑 - 参考Java),模板(你实际上看到的东西)。 根据Alex的建议,您可以在主页上收集一些输入并使用该数据来抓取所需的页面。
回到你的下一个问题,是的,你可以点击按钮启动脚本,JS的基本工作知识会很好。
这就像一个非常普遍的答案,代表了问题的一般性,如果需要,请随时获得更具体的请求。