Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.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
Python 如何验证检索到的价格是否与我要跟踪的产品对应?_Python_Web Scraping_Tags - Fatal编程技术网

Python 如何验证检索到的价格是否与我要跟踪的产品对应?

Python 如何验证检索到的价格是否与我要跟踪的产品对应?,python,web-scraping,tags,Python,Web Scraping,Tags,我正在开发一个Python抓取脚本。目前,我可以给脚本一个产品名称,例如“Fifa 17”,通过一个算法,它给了我大约3到4个可以购买产品的链接(比如亚马逊) 然后,我用下面的python代码片段刮取销售该产品的页面的html代码: url = 'http://www.priceminister.com/mfp/5470023' headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML,

我正在开发一个Python抓取脚本。目前,我可以给脚本一个产品名称,例如“Fifa 17”,通过一个算法,它给了我大约3到4个可以购买产品的链接(比如亚马逊)

然后,我用下面的python代码片段刮取销售该产品的页面的html代码:

url = 'http://www.priceminister.com/mfp/5470023'
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36'}
page = requests.get(url, headers=headers)
contenu = page.content
“contenu”变量包含所有HTML。 这是订购国际足联17的价格部长网页。我想从这个代码中提取国际足联17的价格。使用正则表达式,我已经可以匹配货币符号,如“€”或“$”,但该页面还包含其他产品价格,因此不可靠。我在考虑将标题标签与“Fifa 17”之类的内容匹配,然后得到第一个价格标签,但是如果你先有一个原价,然后有一个销售价格,你宁愿得到一个销售价格。所以这种方法也不起作用

我不能在代码中提供直接的XPATH链接来匹配,因为我的代码必须适用于其他网站,所以我不能通过了解页面设计来作弊

因为,当然,我可以作弊,用我的浏览器查看哪个HTML标签包含国际足联17的价格,并直接给出代码,但如果我这样做,我将是非通用的,我必须找到每个网站的标签。我不希望它,我希望脚本是通用的,所以理论上,它应该适用于每个网站


如果有人能帮我的话,我已经没有什么想法了。

我认为一般的方法是评估你在页面上检索到的每个价格的重要性。例如,“h1”标签下的价格比页面角落处的一点价格更重要。也许有一些图书馆能做到这一点,但我现在想不出任何一个

不过,你所做的任何事情都需要一种明智的方式来辨别价格。虽然你可能会找到一个好的方法,但这种方法并不适用于你找到的每一个网站


所以,也许,“作弊”是最简单的解决办法。您只需为每个站点创建选择器并使用它。

我可以使用jQuery选择器
$(“#prdBuyBoxV2.p.price.typeUsed.spacerBottomXs”)获取价格。
,我将使用它可靠地解析html@fedterzi是的,确实有效,但正如我提到的,你在这里有点作弊,因为你知道在这个网站上,价格标签被称为“p.price.typeUsed.xs“。因此,它在其他网站上不起作用,比如亚马逊,因为它的标签是不同的。世界上许多将搜索字符串与相关对象关联起来的大师都受雇于谷歌。如果你认为可能是一个可比较的问题,那就是把自然语言单词和短语与图像联系起来,我认为很明显,即使谷歌也有困难。“任何一页上的噪音都太大了。”比尔·贝尔:好吧,我明白你的意思。也许这太雄心勃勃了,我应该找回2到3个第一个价格标签,看看它是否与预期价格相对应……我很久以前就学会了避免说“你不能那样做”。(大厅里总有另一个程序员可以通过这样做让你看起来像个傻瓜。)但有时你做不到。我正在研究一个决策算法,是的,你是对的,越接近标题,它就应该越相关。在这个想法中,这是一个项目,我必须制作一个通用的应用程序,这样我就不会很不幸地作弊(如果是个人使用的话,我会这么做)…哦,我明白了。。。如果我是你,我会尝试很多不同的方法!并将最终效果更好的方法结合起来。这样你就可以得到一个健壮的算法。你只需要在很多不同的网站上对它进行微调。尽管如此,还是有一些方法我不知道。想知道谷歌是怎么做到的。。。是的,很难理解他们是如何做到这一点的,但你完全明白我的意思,这正是我想做的。。。