如何为我的抓取网页应用选择架构?

时间:2018-05-11 01:00:10

标签: php python mysql json ajax

我编写了一堆简单的Python脚本,可以在Web上解析和抓取信息并将其存储在JSON文件中,这样我就可以访问这些数据并使用它。现在我想在我的项目之上构建一个Web应用程序。基本用例是:

  1. 用户以html格式输入搜索请求。
  2. 用户无需重新加载页面即可获得响应。
  3. 看起来相当简单,但在选择技术或技术堆栈时会出现几个问题:

    1。 SQL vs JSON。

    我现在将数据存储在JSON文件中,这似乎非常好用:我有一个包含700-800个对象的数组,这些对象包含大约5-6个键值对的unicode字符串和URL:

    {"title": "some title", "img": "some-img-cdn.com/serve/img11484846435.png", "article": "item_article", "url": "some_url.com/group/item_article.html"}
    

    我的旧笔记本电脑搜索数据的速度非常快,但网络呢?当多个用户尝试同时访问同一个文件时会发生什么?那么Python的GIL和linux提供文件的方式呢?问题是,与SQL数据库相比,在JSON文件中读取和搜索的速度要慢多少?

    2。 PHP的PHP方式。

    我使用Python作为通用语言,我在PHP中编写后端。这次我不仅要在Python中编写此应用程序的解析/抓取部分,而且我想使用Python创建和提供网页。我习惯于以简单的方式编写PHP,如下所示:

    $search = $_POST['search_request'];
    $conn = new mysqli($servername, $username, $password, $dbname);
    $sql = "SELECT * FROM data WHERE title='" . mysqli_real_escape_string($search) . "'";
    $result = mysqli_query($conn, $sql);
    echo $page;
    mysqli_close($conn);
    

    然而,它发现Python在开发Web应用程序时变得相当复杂。你必须使用一个完整的网页框架,比如Django,这对我来说似乎太过分了,特别是在我不需要担心存储用户数据,不需要注册或登录,没有电子邮件检查的情况下。所以,第二个问题是,我可以使用内联标签和Apache + PHP堆栈一起使用Python形成和提供有效的html文档吗? 如下:

    echo "<h1>$item->title</h1>"
    echo "<p>$item->description</p>"
    

    如果没有,可以使用所有MVC(他们称之为MTV并且我还没弄清楚为什么)这些东西比Django更容易完成吗?

    第3。 AJAX

    第三部分关于在没有重新加载页面的情况下在搜索结果容器中提供该内容。如何使用jQuery访问本地JSON文件,或者我应该使用XHR查询我的服务器?

0 个答案:

没有答案