Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 需要查找特定值的web应用程序的搜索算法_Search_Full Text Search_Search Engine_Text Search - Fatal编程技术网

Search 需要查找特定值的web应用程序的搜索算法

Search 需要查找特定值的web应用程序的搜索算法,search,full-text-search,search-engine,text-search,Search,Full Text Search,Search Engine,Text Search,我正在开发一个webapp,它需要从一个网站下载html,然后迭代代码,试图找到一个特定但不断变化的值(在我们的例子中,它将是产品的价格) 为此,我考虑要求用户(在安装和设置时)向系统提供页面中的几行html(有价格),然后从那时起,每次我们需要获取价格时,我们都会尝试搜索这些行并找到价格 现在,我相信这是一个可怕的和缓慢的方式做这件事,因为没有规则和html可以完全不同的网站从一个到另一个(甚至同一个网站可能会改变),我找不到更好的方式 我考虑的一个改进是第一次迭代并记录我们找到代码的行。一旦

我正在开发一个webapp,它需要从一个网站下载html,然后迭代代码,试图找到一个特定但不断变化的值(在我们的例子中,它将是产品的价格)

为此,我考虑要求用户(在安装和设置时)向系统提供页面中的几行html(有价格),然后从那时起,每次我们需要获取价格时,我们都会尝试搜索这些行并找到价格

现在,我相信这是一个可怕的和缓慢的方式做这件事,因为没有规则和html可以完全不同的网站从一个到另一个(甚至同一个网站可能会改变),我找不到更好的方式

我考虑的一个改进是第一次迭代并记录我们找到代码的行。一旦找到,接下来的时间我们将从预期位置前的几行开始搜索。关于如何改进这一点,有什么想法吗

我把这个问题贴在了,但他们评论说这个问题不在主题上,我应该把它贴在这里


我有上面的代码,如果需要,我可以发布它,我只是想一定有更好、更快的方法来实现这一点。

这实际上是我最近在一个项目中尝试的东西(使用BeautifulSoup和Python)。对我来说,有效的解决方案是使用CSS选择器(可以映射到jQuery选择器),以包含我要查找的值的元素为目标。在我的例子中,我能够将整个文档的范围缩小到仅包含我正在寻找的内容的元素,但是如果您不能准确地获得您想要的内容,您可以将其与一些额外的类似乳酸的测试结合起来,以查看它是否看起来像一个价格(通过regex)或者测试下一个数值。

我知道数值正在变化,但是否有任何线索指向可预测的正确数值?就像jQuery样式选择器一样,它可以解决(或者至少缩小范围?)@JasonSperske不幸的是,没有保证,这是主要问题。唯一不变的是价值是价格。但即便如此,html标记可能会有很大的不同(更不用说具体国家的货币符号和当前格式),也许您可以添加一些您试图解析的标记的示例?@jasonsperske我不在办公室,也不在手机上。几小时后我将在办公室,并将用一些示例更新问题。如果您找到了解决方案,您可以尝试将其发布在CodeReview(另一个Stack Exchange站点)上,看看是否有人可以帮助清理任何边缘案例或提高性能。祝你好运:)是的,我真的不知道我是怎么错过的。这是最简单的方法。虽然每个网站都不一样,但同一个网站很少会改变它的结构。通过使用css选择器,我们让浏览器代替服务器(这是我计划的方式。做得好,先生,谢谢!