网页搜寻以获得最优价格?

时间:2017-06-30 14:54:25

标签: python excel web-scraping

本网站比较了我所在国家/地区大多数商店的所有价格,以获取特定的Magic:The Gathering卡https://www.ligamagic.com.br/?view=cards%2Fsearch&card=

我想编写一个程序:

1 - >问我一张卡片清单(有金额)

2 - >我插入了我想要购买的卡片

3 - >程序显示了购买这些卡的最佳方式。

任何商店的运费通常为7美元。

该程序必须告诉我购买所有插入的卡的最佳方式是什么(最便宜的方式)。如果这种方式更便宜,它必须根据运费显示多个商店。

我的问题是:我不知道我从哪里开始。 我应该为这个非常具体的案例学到什么? Phyton网络刮痧? Excel网页抓取?

我开放学习代码语言,观看视频教程等等。任何能帮助我解决问题的方法。

2 个答案:

答案 0 :(得分:2)

您将遇到的问题是,抓取您的程序将搜索卡片的每个网站都需要唯一的代码。每个站点的html将以不同的方式组织,您将不得不剖析此html以确定如何为每个网站表示卡数据。如果您愿意为每个网站的html编写唯一代码来搜索特定的卡片数据,那么我建议如下:

  • 如上所述使用Selenium webdriver(相当容易学习)与phantomjs(它是无头的,所以它更快)。

    1. 对于每个可能包含该卡的潜在站点,编写一个函数,将幻像js驱动程序指向该站点的URL,然后使用FindElement查找搜索栏元素。然后使用SendKeys方法将单个卡的名称发送到搜索栏,然后使用搜索按钮上的Click方法。
    2. 然后,驱动程序将被定向到包含搜索结果的页面。在这里,您必须使用chrome开发人员工具等工具来检查页面的html,并确定如何显示卡片数据(名称,价格等)。一旦解剖了html,就可以让程序使用FindElement来获取这些数据。将它存储在某种集合中以返回到您的主要功能。
    3. 重复这些步骤,为您计划搜索的每个网站编写一个独特的抓取功能。
    4. 从您的主函数中,调用上述每个scrape函数,并比较每个函数的结果以找到最优价格。

这是一个非常高级的解释,但如果你理解python或c#等语言的基础知识,那么自己很容易教自己selenium和phantomjs,这很容易实现。

答案 1 :(得分:1)

您可以使用Selenium驱动程序从您选择的编码语言驱动浏览器。这需要一些设置,但这并不太难。

我认为你在这里找到的问题是双重的。首先,你需要了解在哪里看(即哪些网站正在销售),然后提出一些启发式方法,定义你如何找出你的程序,以便你的程序能够在网站动态变化时发现新的采购来源(即网站脱机,商店关闭,新网站开放,库存耗尽)。其次,您需要弄清楚如何在运输成本,税收等方面制定计划因素(此信息将无法以相同的格式或相同的位置从该计划将要刮取的每个站点获得)。

我希望这有用吗?