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

rm5edbpk  于 2021-06-25  发布在  Mysql
关注(0)|答案(0)|浏览(154)

我已经编写了一系列简单的python脚本,它们解析和抓取web上的信息并将其存储在json文件中,这样我就可以访问这些数据并使用它们。现在我想在我的项目上构建一个web应用程序。基本用例是:
用户以html格式输入他的搜索请求。
用户无需重新加载页面即可获得响应。
看起来相当简单,但是在选择技术或技术堆栈时会出现几个问题:
1sql与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文件中的读取和搜索要慢多少?
2python的php方式。
我使用python作为通用语言,我用php编写后端。这次我不仅想用python编写这个应用程序的解析/爬网部分,还想用python创建和服务web页面。我习惯用一种简单的方式编写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做的容易得多吗?
三。ajax
第三部分是关于在搜索结果容器中提供内容而不重新加载页面。如何使用jquery访问本地json文件,还是使用xhr查询服务器?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题